Coverage Report

Created: 2024-05-28 01:31

/src/scnlib/include/scn/scan.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2017 Elias Kosunen
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file is a part of scnlib:
16
//     https://github.com/eliaskosunen/scnlib
17
18
#pragma once
19
20
// Includes <cassert>, <cstddef>, <cstdint>, and <type_traits>
21
#include <scn/fwd.h>
22
23
#include <array>
24
#include <cstdio>
25
#include <cstring>
26
#include <iterator>
27
#include <limits>
28
#include <optional>
29
#include <string>
30
#include <string_view>
31
#include <tuple>
32
33
/////////////////////////////////////////////////////////////////
34
// <expected> implementation
35
/////////////////////////////////////////////////////////////////
36
37
// The following implementation of expected is based on TartanLlama/expected,
38
// but is heavily modified.
39
//
40
// The original source is here:
41
//     https://github.com/TartanLlama/expected
42
// which is licensed under CC0 (Public Domain).
43
44
namespace scn {
45
SCN_BEGIN_NAMESPACE
46
47
/////////////////////////////////////////////////////////////////
48
// Metaprogramming facilities
49
/////////////////////////////////////////////////////////////////
50
51
namespace detail {
52
53
template <typename T>
54
using integer_type_for_char =
55
    std::conditional_t<std::is_signed_v<T>, int, unsigned>;
56
57
template <typename T, template <typename...> class Templ>
58
struct is_specialization_of_impl : std::false_type {};
59
template <typename... T, template <typename...> class Templ>
60
struct is_specialization_of_impl<Templ<T...>, Templ> : std::true_type {};
61
62
template <typename T, template <typename...> class Templ>
63
using is_specialization_of =
64
    is_specialization_of_impl<remove_cvref_t<T>, Templ>;
65
template <typename T, template <typename...> class Templ>
66
inline constexpr bool is_specialization_of_v =
67
    is_specialization_of<T, Templ>::value;
68
69
// from mp11:
70
71
template <typename T>
72
struct mp_identity {
73
    using type = T;
74
};
75
template <typename T>
76
using mp_identity_t = typename mp_identity<T>::type;
77
78
template <bool B>
79
using mp_bool = std::integral_constant<bool, B>;
80
template <typename T>
81
using mp_to_bool = mp_bool<static_cast<bool>(T::value)>;
82
template <typename T>
83
using mp_not = mp_bool<!T::value>;
84
85
template <bool C, typename T, typename... E>
86
struct mp_if_c_impl;
87
template <typename T, typename... E>
88
struct mp_if_c_impl<true, T, E...> {
89
    using type = T;
90
};
91
template <typename T, typename E>
92
struct mp_if_c_impl<false, T, E> {
93
    using type = E;
94
};
95
96
template <bool C, typename T, typename... E>
97
using mp_if_c = typename mp_if_c_impl<C, T, E...>::type;
98
template <typename C, typename T, typename... E>
99
using mp_if = typename mp_if_c_impl<static_cast<bool>(C::value), T, E...>::type;
100
101
template <template <typename...> class F, typename... T>
102
struct mp_valid_impl {
103
    template <template <typename...> class G, typename = G<T...>>
104
    static std::true_type check(int);
105
    template <template <typename...> class>
106
    static std::false_type check(...);
107
108
    using type = decltype(check<F>(0));
109
};
110
111
template <template <typename...> class F, typename... T>
112
using mp_valid = typename mp_valid_impl<F, T...>::type;
113
template <template <typename...> class F, typename... T>
114
inline constexpr bool mp_valid_v = mp_valid<F, T...>::value;
115
116
struct mp_nonesuch {};
117
template <template <typename...> class F, typename... T>
118
struct mp_defer_impl {
119
    using type = F<T...>;
120
};
121
122
template <template <typename...> class F, typename... T>
123
using mp_defer = mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_nonesuch>;
124
125
template <bool C, class T, template <class...> class F, class... U>
126
struct mp_eval_if_c_impl;
127
128
template <class T, template <class...> class F, class... U>
129
struct mp_eval_if_c_impl<true, T, F, U...> {
130
    using type = T;
131
};
132
133
template <class T, template <class...> class F, class... U>
134
struct mp_eval_if_c_impl<false, T, F, U...> : mp_defer<F, U...> {};
135
136
template <bool C, class T, template <class...> class F, class... U>
137
using mp_eval_if_c = typename mp_eval_if_c_impl<C, T, F, U...>::type;
138
template <class C, class T, template <class...> class F, class... U>
139
using mp_eval_if =
140
    typename mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
141
template <class C, class T, class Q, class... U>
142
using mp_eval_if_q = typename mp_eval_if_c_impl<static_cast<bool>(C::value),
143
                                                T,
144
                                                Q::template fn,
145
                                                U...>::type;
146
147
// mp_eval_if_not
148
template <class C, class T, template <class...> class F, class... U>
149
using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
150
template <class C, class T, class Q, class... U>
151
using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
152
153
// mp_eval_or
154
template <class T, template <class...> class F, class... U>
155
using mp_eval_or = mp_eval_if_not<mp_valid<F, U...>, T, F, U...>;
156
template <class T, class Q, class... U>
157
using mp_eval_or_q = mp_eval_or<T, Q::template fn, U...>;
158
159
// mp_valid_and_true
160
template <template <class...> class F, class... T>
161
using mp_valid_and_true = mp_eval_or<std::false_type, F, T...>;
162
template <class Q, class... T>
163
using mp_valid_and_true_q = mp_valid_and_true<Q::template fn, T...>;
164
165
// extension
166
template <template <typename...> class F, typename... T>
167
using mp_valid_result =
168
    mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_identity<void>>;
169
template <template <typename...> class F, typename... T>
170
using mp_valid_result_t = typename mp_valid_result<F, T...>::type;
171
172
/////////////////////////////////////////////////////////////////
173
// pointer_traits and to_address
174
/////////////////////////////////////////////////////////////////
175
176
template <typename Ptr, typename>
177
struct pointer_traits {};
178
179
template <typename T>
180
struct pointer_traits<T*, void> {
181
    using pointer = T*;
182
    using element_type = T;
183
    using difference_type = std::ptrdiff_t;
184
185
    template <typename U>
186
    using rebind = U*;
187
188
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
189
    static constexpr pointer pointer_to(U& r) noexcept
190
    {
191
        return &r;
192
    }
193
194
    static constexpr pointer to_address(pointer p) noexcept
195
    {
196
        return p;
197
    }
198
};
199
200
template <typename Ptr>
201
using apply_member_difference_type = typename Ptr::difference_type;
202
template <typename Ptr>
203
using get_member_difference_type =
204
    mp_eval_or<std::ptrdiff_t, apply_member_difference_type, Ptr>;
205
206
template <typename Ptr, typename ElementType>
207
struct pointer_traits_generic_base {
208
    using pointer = Ptr;
209
    using element_type = ElementType;
210
211
    using difference_type = get_member_difference_type<Ptr>;
212
    static_assert(std::is_integral_v<difference_type>);
213
214
    // no rebind (TODO?)
215
216
    template <typename P = Ptr>
217
    static auto pointer_to(ElementType& r) -> decltype(P::pointer_to(r))
218
    {
219
        return Ptr::pointer_to(r);
220
    }
221
};
222
223
template <typename It, typename = void>
224
struct wrapped_pointer_iterator;
225
226
#ifdef _GLIBCXX_DEBUG
227
template <typename Elem, typename Container>
228
struct wrapped_pointer_iterator<__gnu_debug::_Safe_iterator<Elem*, Container>> {
229
    static constexpr auto to_address(
230
        const __gnu_debug::_Safe_iterator<Elem*, Container>& it) noexcept
231
    {
232
        return it.base();
233
    }
234
};
235
#endif
236
#if SCN_STDLIB_GLIBCXX
237
template <typename Elem, typename Container>
238
struct wrapped_pointer_iterator<
239
    __gnu_cxx::__normal_iterator<Elem*, Container>> {
240
    static constexpr auto to_address(
241
        const __gnu_cxx::__normal_iterator<Elem*, Container>& it) noexcept
242
    {
243
        return it.base();
244
    }
245
};
246
#endif
247
#if SCN_STDLIB_LIBCPP
248
template <typename Elem>
249
struct wrapped_pointer_iterator<std::__wrap_iter<Elem*>> {
250
    static constexpr auto to_address(const std::__wrap_iter<Elem*>& it) noexcept
251
    {
252
        return it.base();
253
    }
254
};
255
#endif
256
257
template <typename I>
258
using apply_deref = decltype(*SCN_DECLVAL(I&));
259
template <typename I>
260
using apply_incr = decltype(++SCN_DECLVAL(I&));
261
template <typename I>
262
using apply_member_unwrapped = decltype(SCN_DECLVAL(I&)._Unwrapped());
263
template <typename It>
264
struct wrapped_pointer_iterator<
265
    It,
266
    std::enable_if_t<mp_valid_v<apply_deref, It> &&
267
                     mp_valid_v<apply_incr, It> &&
268
                     mp_valid_v<apply_member_unwrapped, It>>> {
269
    static constexpr auto to_address(const It& it) noexcept
270
    {
271
        return it._Unwrapped();
272
    }
273
};
274
275
template <typename I>
276
using apply_member_to_address =
277
    decltype(wrapped_pointer_iterator<I>::to_address(SCN_DECLVAL(const I&)));
278
279
template <typename Iterator>
280
struct pointer_traits<
281
    Iterator,
282
    std::enable_if_t<mp_valid_v<apply_member_to_address, Iterator>>>
283
    : pointer_traits_generic_base<
284
          Iterator,
285
          std::remove_reference_t<decltype(*SCN_DECLVAL(Iterator&))>> {
286
    static constexpr auto to_address(const Iterator& it) noexcept
287
    {
288
        return wrapped_pointer_iterator<Iterator>::to_address(it);
289
    }
290
};
291
292
template <typename It>
293
using apply_ptr_traits_to_address =
294
    decltype(pointer_traits<It>::to_address(SCN_DECLVAL(const It&)));
295
template <typename It>
296
inline constexpr bool can_make_address_from_iterator =
297
    std::is_pointer_v<mp_valid_result_t<apply_ptr_traits_to_address, It>>;
298
299
template <typename T>
300
constexpr T* to_address_impl(T* p, priority_tag<2>) noexcept
301
1.44G
{
302
1.44G
    return p;
303
1.44G
}
char const* scn::v3::detail::to_address_impl<char const>(char const*, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
301
75.3M
{
302
75.3M
    return p;
303
75.3M
}
wchar_t const* scn::v3::detail::to_address_impl<wchar_t const>(wchar_t const*, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
301
1.37G
{
302
1.37G
    return p;
303
1.37G
}
304
template <typename Ptr>
305
constexpr auto to_address_impl(const Ptr& p, priority_tag<1>) noexcept
306
    -> decltype(::scn::detail::pointer_traits<Ptr>::to_address(p))
307
{
308
    return ::scn::detail::pointer_traits<Ptr>::to_address(p);
309
}
310
template <typename Ptr>
311
constexpr auto to_address_impl(const Ptr& p, priority_tag<0>) noexcept
312
    -> decltype(::scn::detail::to_address_impl(p.operator->(),
313
                                               priority_tag<2>{}))
314
{
315
    return ::scn::detail::to_address_impl(p.operator->(), priority_tag<2>{});
316
}
317
318
template <typename Ptr>
319
constexpr auto to_address(Ptr&& p) noexcept
320
    -> decltype(::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{}))
321
1.44G
{
322
1.44G
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
1.44G
}
_ZN3scn2v36detail10to_addressIRPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
67.6M
{
322
67.6M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
67.6M
}
_ZN3scn2v36detail10to_addressIPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
7.70M
{
322
7.70M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
7.70M
}
_ZN3scn2v36detail10to_addressIRPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
1.33G
{
322
1.33G
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
1.33G
}
_ZN3scn2v36detail10to_addressIPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
39.1M
{
322
39.1M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
39.1M
}
324
325
}  // namespace detail
326
327
template <typename E>
328
class SCN_TRIVIAL_ABI unexpected {
329
    static_assert(std::is_destructible_v<E>);
330
331
public:
332
    unexpected() = delete;
333
334
    template <
335
        typename Err = E,
336
        typename = std::enable_if_t<!std::is_same_v<Err, unexpected> &&
337
                                    !std::is_same_v<Err, std::in_place_t> &&
338
                                    std::is_constructible_v<E, Err>>>
339
    explicit constexpr unexpected(Err&& e) noexcept(
340
        std::is_nothrow_constructible_v<E, Err>)
341
        : m_unexpected(std::forward<Err>(e))
342
53.1M
    {
343
53.1M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
53.1M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error&, void>(scn::v3::scan_error&)
Line
Count
Source
342
11.2M
    {
343
11.2M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
11.2M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error, void>(scn::v3::scan_error&&)
Line
Count
Source
342
857k
    {
343
857k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
857k
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error, void>(scn::v3::impl::eof_error&&)
Line
Count
Source
342
224k
    {
343
224k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
224k
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error&, void>(scn::v3::impl::eof_error&)
Line
Count
Source
342
168k
    {
343
168k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
168k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error, void>(scn::v3::impl::parse_error&&)
Line
Count
Source
342
114k
    {
343
114k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
114k
    }
scn::v3::unexpected<scn::v3::impl::parse_error::code>::unexpected<scn::v3::impl::parse_error::code, void>(scn::v3::impl::parse_error::code&&)
Line
Count
Source
342
35.2M
    {
343
35.2M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
35.2M
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error&, void>(scn::v3::impl::parse_error&)
Line
Count
Source
342
5.28M
    {
343
5.28M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
5.28M
    }
345
346
    template <typename... Args,
347
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
348
    explicit constexpr unexpected(std::in_place_t, Args&&... args) noexcept(
349
        std::is_nothrow_constructible_v<E, Args...>)
350
        : m_unexpected(std::forward<Args>(args)...)
351
59.1M
    {
352
59.1M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
59.1M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error, void>(std::__1::in_place_t, scn::v3::scan_error&&)
Line
Count
Source
351
17.9M
    {
352
17.9M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
17.9M
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error, void>(std::__1::in_place_t, scn::v3::impl::eof_error&&)
Line
Count
Source
351
392k
    {
352
392k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
392k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error, void>(std::__1::in_place_t, scn::v3::impl::parse_error&&)
Line
Count
Source
351
5.62M
    {
352
5.62M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
5.62M
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error::code, void>(std::__1::in_place_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
351
35.2M
    {
352
35.2M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
35.2M
    }
354
355
    SCN_NODISCARD constexpr E& error() & noexcept
356
83.8M
    {
357
83.8M
        return m_unexpected;
358
83.8M
    }
scn::v3::unexpected<scn::v3::scan_error>::error() &
Line
Count
Source
356
22.7M
    {
357
22.7M
        return m_unexpected;
358
22.7M
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::error() &
Line
Count
Source
356
784k
    {
357
784k
        return m_unexpected;
358
784k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::error() &
Line
Count
Source
356
25.0M
    {
357
25.0M
        return m_unexpected;
358
25.0M
    }
scn::v3::unexpected<scn::v3::impl::parse_error::code>::error() &
Line
Count
Source
356
35.2M
    {
357
35.2M
        return m_unexpected;
358
35.2M
    }
359
    SCN_NODISCARD constexpr const E& error() const& noexcept
360
0
    {
361
0
        return m_unexpected;
362
0
    }
Unexecuted instantiation: scn::v3::unexpected<scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::unexpected<scn::v3::impl::parse_error>::error() const &
363
364
    SCN_NODISCARD constexpr E&& error() && noexcept
365
    {
366
        return std::move(m_unexpected);
367
    }
368
    SCN_NODISCARD constexpr const E&& error() const&& noexcept
369
    {
370
        return std::move(m_unexpected);
371
    }
372
373
private:
374
    E m_unexpected;
375
};
376
377
template <typename E>
378
unexpected(E) -> unexpected<E>;
379
380
struct unexpect_t {};
381
inline constexpr unexpect_t unexpect{};
382
383
namespace detail {
384
template <typename T, typename... Args>
385
T* construct_at(T* p, Args&&... args) noexcept(
386
    std::is_nothrow_constructible_v<T, Args...>)
387
40.1M
{
388
40.1M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
40.1M
        T(std::forward<Args>(args)...);
390
40.1M
}
scn::v3::unexpected<scn::v3::scan_error>* scn::v3::detail::construct_at<scn::v3::unexpected<scn::v3::scan_error>, std::__1::in_place_t const&, scn::v3::scan_error>(scn::v3::unexpected<scn::v3::scan_error>*, std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
387
216k
{
388
216k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
216k
        T(std::forward<Args>(args)...);
390
216k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
151k
{
388
151k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
151k
        T(std::forward<Args>(args)...);
390
151k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
796
{
388
796
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
796
        T(std::forward<Args>(args)...);
390
796
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
68
{
388
68
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
68
        T(std::forward<Args>(args)...);
390
68
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
19.5M
{
388
19.5M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
19.5M
        T(std::forward<Args>(args)...);
390
19.5M
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
311k
{
388
311k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
311k
        T(std::forward<Args>(args)...);
390
311k
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
309k
{
388
309k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
309k
        T(std::forward<Args>(args)...);
390
309k
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
724
{
388
724
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
724
        T(std::forward<Args>(args)...);
390
724
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
724
{
388
724
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
724
        T(std::forward<Args>(args)...);
390
724
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
152k
{
388
152k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
152k
        T(std::forward<Args>(args)...);
390
152k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
19.5M
{
388
19.5M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
19.5M
        T(std::forward<Args>(args)...);
390
19.5M
}
391
template <typename T>
392
void destroy_at(T* p) noexcept
393
40.1M
{
394
40.1M
    if constexpr (std::is_array_v<T>) {
395
40.1M
        for (auto& elem : *p) {
396
40.1M
            scn::detail::destroy_at(&elem);
397
40.1M
        }
398
40.1M
    }
399
40.1M
    else {
400
40.1M
        p->~T();
401
40.1M
    }
402
40.1M
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
151k
{
394
151k
    if constexpr (std::is_array_v<T>) {
395
151k
        for (auto& elem : *p) {
396
151k
            scn::detail::destroy_at(&elem);
397
151k
        }
398
151k
    }
399
151k
    else {
400
151k
        p->~T();
401
151k
    }
402
151k
}
void scn::v3::detail::destroy_at<scn::v3::unexpected<scn::v3::scan_error> >(scn::v3::unexpected<scn::v3::scan_error>*)
Line
Count
Source
393
216k
{
394
216k
    if constexpr (std::is_array_v<T>) {
395
216k
        for (auto& elem : *p) {
396
216k
            scn::detail::destroy_at(&elem);
397
216k
        }
398
216k
    }
399
216k
    else {
400
216k
        p->~T();
401
216k
    }
402
216k
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
796
{
394
796
    if constexpr (std::is_array_v<T>) {
395
796
        for (auto& elem : *p) {
396
796
            scn::detail::destroy_at(&elem);
397
796
        }
398
796
    }
399
796
    else {
400
796
        p->~T();
401
796
    }
402
796
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
68
{
394
68
    if constexpr (std::is_array_v<T>) {
395
68
        for (auto& elem : *p) {
396
68
            scn::detail::destroy_at(&elem);
397
68
        }
398
68
    }
399
68
    else {
400
68
        p->~T();
401
68
    }
402
68
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
19.5M
{
394
19.5M
    if constexpr (std::is_array_v<T>) {
395
19.5M
        for (auto& elem : *p) {
396
19.5M
            scn::detail::destroy_at(&elem);
397
19.5M
        }
398
19.5M
    }
399
19.5M
    else {
400
19.5M
        p->~T();
401
19.5M
    }
402
19.5M
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
311k
{
394
311k
    if constexpr (std::is_array_v<T>) {
395
311k
        for (auto& elem : *p) {
396
311k
            scn::detail::destroy_at(&elem);
397
311k
        }
398
311k
    }
399
311k
    else {
400
311k
        p->~T();
401
311k
    }
402
311k
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
309k
{
394
309k
    if constexpr (std::is_array_v<T>) {
395
309k
        for (auto& elem : *p) {
396
309k
            scn::detail::destroy_at(&elem);
397
309k
        }
398
309k
    }
399
309k
    else {
400
309k
        p->~T();
401
309k
    }
402
309k
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
724
{
394
724
    if constexpr (std::is_array_v<T>) {
395
724
        for (auto& elem : *p) {
396
724
            scn::detail::destroy_at(&elem);
397
724
        }
398
724
    }
399
724
    else {
400
724
        p->~T();
401
724
    }
402
724
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
724
{
394
724
    if constexpr (std::is_array_v<T>) {
395
724
        for (auto& elem : *p) {
396
724
            scn::detail::destroy_at(&elem);
397
724
        }
398
724
    }
399
724
    else {
400
724
        p->~T();
401
724
    }
402
724
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
152k
{
394
152k
    if constexpr (std::is_array_v<T>) {
395
152k
        for (auto& elem : *p) {
396
152k
            scn::detail::destroy_at(&elem);
397
152k
        }
398
152k
    }
399
152k
    else {
400
152k
        p->~T();
401
152k
    }
402
152k
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
19.5M
{
394
19.5M
    if constexpr (std::is_array_v<T>) {
395
19.5M
        for (auto& elem : *p) {
396
19.5M
            scn::detail::destroy_at(&elem);
397
19.5M
        }
398
19.5M
    }
399
19.5M
    else {
400
19.5M
        p->~T();
401
19.5M
    }
402
19.5M
}
403
404
struct deferred_init_tag_t {};
405
static constexpr deferred_init_tag_t deferred_init_tag{};
406
407
template <typename T,
408
          typename E,
409
          bool IsTriviallyDestructible = std::is_trivially_destructible_v<T> &&
410
                                         std::is_trivially_destructible_v<E>>
411
struct expected_storage_base;
412
413
template <typename T, typename E>
414
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, true> {
415
    constexpr expected_storage_base() noexcept(
416
        std::is_nothrow_default_constructible_v<T>)
417
        : m_value(T{}), m_has_value(true)
418
    {
419
    }
420
421
    constexpr explicit expected_storage_base(deferred_init_tag_t) noexcept
422
        : m_deferred_init(), m_has_value(false)
423
    {
424
    }
425
426
    template <typename... Args,
427
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
428
    constexpr explicit expected_storage_base(
429
        std::in_place_t,
430
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
431
        : m_value(std::forward<Args>(args)...), m_has_value(true)
432
560M
    {
433
560M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
432
4.53M
    {
433
4.53M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Line
Count
Source
432
122
    {
433
122
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Line
Count
Source
432
382k
    {
433
382k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Line
Count
Source
432
324k
    {
433
324k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Line
Count
Source
432
756k
    {
433
756k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
432
151k
    {
433
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
432
39.0M
    {
433
39.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Line
Count
Source
432
62
    {
433
62
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Line
Count
Source
432
711
    {
433
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Line
Count
Source
432
564
    {
433
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Line
Count
Source
432
14.2k
    {
433
14.2k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
432
19.5M
    {
433
19.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
14.9M
    {
433
14.9M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
39.7M
    {
433
39.7M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
21.8M
    {
433
21.8M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
79.3M
    {
433
79.3M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
21.9M
    {
433
21.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
432
6.55M
    {
433
6.55M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
432
2.07M
    {
433
2.07M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
4.69M
    {
433
4.69M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
12.4M
    {
433
12.4M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
432
3.33M
    {
433
3.33M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
10.9M
    {
433
10.9M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
6.94k
    {
433
6.94k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
4.35k
    {
433
4.35k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<char const*, long>, void>(std::__1::in_place_t, std::__1::pair<char const*, long>&&)
Line
Count
Source
432
6.62M
    {
433
6.62M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
1.29k
    {
433
1.29k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
1.83k
    {
433
1.83k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
432
982
    {
433
982
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
432
982
    {
433
982
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Line
Count
Source
432
1.62M
    {
433
1.62M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
4.54M
    {
433
4.54M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
1.00M
    {
433
1.00M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Line
Count
Source
432
3.35M
    {
433
3.35M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<long, void>(std::__1::in_place_t, long&&)
Line
Count
Source
432
76.2M
    {
433
76.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
2.28M
    {
433
2.28M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
316
    {
433
316
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
2.30M
    {
433
2.30M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_storage_base<std::__1::regex_constants::syntax_option_type, void>(std::__1::in_place_t, std::__1::regex_constants::syntax_option_type&&)
Line
Count
Source
432
9.52k
    {
433
9.52k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
432
822
    {
433
822
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
432
810
    {
433
810
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const* const&, void>(std::__1::in_place_t, char const* const&)
Line
Count
Source
432
4.06k
    {
433
4.06k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
21.8M
    {
433
21.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
432
16.1M
    {
433
16.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
432
5.42k
    {
433
5.42k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
622k
    {
433
622k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
940k
    {
433
940k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
432
351k
    {
433
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
432
351k
    {
433
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
432
7.83M
    {
433
7.83M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
41.2M
    {
433
41.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, long>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
432
31.7M
    {
433
31.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
432
4.09k
    {
433
4.09k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
625k
    {
433
625k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
914k
    {
433
914k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
432
354k
    {
433
354k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
432
354k
    {
433
354k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
432
15.6M
    {
433
15.6M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
268k
    {
433
268k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
269k
    {
433
269k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
432
34
    {
433
34
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const* const&, void>(std::__1::in_place_t, wchar_t const* const&)
Line
Count
Source
432
68
    {
433
68
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<int, void>(std::__1::in_place_t, int&&)
Line
Count
Source
432
250k
    {
433
250k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::expected_storage_base<wchar_t, void>(std::__1::in_place_t, wchar_t&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>&&)
Line
Count
Source
432
296k
    {
433
296k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>&&)
Line
Count
Source
432
283k
    {
433
283k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>&&)
Line
Count
Source
432
390k
    {
433
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>&&)
Line
Count
Source
432
328k
    {
433
328k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
432
4.37M
    {
433
4.37M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>&&)
Line
Count
Source
432
298k
    {
433
298k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>&&)
Line
Count
Source
432
285k
    {
433
285k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>&&)
Line
Count
Source
432
383k
    {
433
383k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>&&)
Line
Count
Source
432
326k
    {
433
326k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>&&)
Line
Count
Source
432
390k
    {
433
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>&&)
Line
Count
Source
432
330k
    {
433
330k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>&&)
Line
Count
Source
432
595
    {
433
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>&&)
Line
Count
Source
432
500
    {
433
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>&&)
Line
Count
Source
432
864
    {
433
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>&&)
Line
Count
Source
432
694
    {
433
694
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
432
19.5M
    {
433
19.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>&&)
Line
Count
Source
432
595
    {
433
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>&&)
Line
Count
Source
432
500
    {
433
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>&&)
Line
Count
Source
432
711
    {
433
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>&&)
Line
Count
Source
432
564
    {
433
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>&&)
Line
Count
Source
432
864
    {
433
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>&&)
Line
Count
Source
432
694
    {
433
694
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>&&)
Line
Count
Source
432
695k
    {
433
695k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>&&)
Line
Count
Source
432
767k
    {
433
767k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>&&)
Line
Count
Source
432
690k
    {
433
690k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>&&)
Line
Count
Source
432
751k
    {
433
751k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>&&)
Line
Count
Source
432
761k
    {
433
761k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>&&)
Line
Count
Source
432
14.1k
    {
433
14.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>&&)
Line
Count
Source
432
14.3k
    {
433
14.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>&&)
Line
Count
Source
432
14.0k
    {
433
14.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>&&)
Line
Count
Source
432
14.1k
    {
433
14.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>&&)
Line
Count
Source
432
14.3k
    {
433
14.3k
    }
434
435
    template <typename... Args,
436
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
437
    constexpr explicit expected_storage_base(
438
        unexpect_t,
439
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
440
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
441
          m_has_value(false)
442
58.9M
    {
443
58.9M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
448k
    {
443
448k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
7.90k
    {
443
7.90k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
48.8k
    {
443
48.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
48.8k
    {
443
48.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
46.0k
    {
443
46.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
8.03k
    {
443
8.03k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
8.03k
    {
443
8.03k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
17.1k
    {
443
17.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
902k
    {
443
902k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
15.9k
    {
443
15.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
97.7k
    {
443
97.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
97.7k
    {
443
97.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
92.0k
    {
443
92.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
16.0k
    {
443
16.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
16.0k
    {
443
16.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
35.8k
    {
443
35.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.93M
    {
443
2.93M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.07M
    {
443
2.07M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
3.09M
    {
443
3.09M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
1.88M
    {
443
1.88M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
156k
    {
443
156k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
41.7k
    {
443
41.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
2.42M
    {
443
2.42M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
17.5M
    {
443
17.5M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
491
    {
443
491
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
61.1k
    {
443
61.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
186
    {
443
186
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
5.80k
    {
443
5.80k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
38.2k
    {
443
38.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
536
    {
443
536
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
5.12k
    {
443
5.12k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
2.35M
    {
443
2.35M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
13.4M
    {
443
13.4M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
156
    {
443
156
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.81M
    {
443
2.81M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
85.1k
    {
443
85.1k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
5.17k
    {
443
5.17k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
420k
    {
443
420k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
2.34M
    {
443
2.34M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
27
    {
443
27
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
89.1k
    {
443
89.1k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
6.86k
    {
443
6.86k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
421k
    {
443
421k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
1.85M
    {
443
1.85M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
12
    {
443
12
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
369k
    {
443
369k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
738k
    {
443
738k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
37.9k
    {
443
37.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
37.9k
    {
443
37.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
37.9k
    {
443
37.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
37.9k
    {
443
37.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
37.9k
    {
443
37.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
75.9k
    {
443
75.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
75.9k
    {
443
75.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
75.9k
    {
443
75.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
75.9k
    {
443
75.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
75.9k
    {
443
75.9k
    }
444
445
    constexpr T& get_value() & noexcept
446
568M
    {
447
568M
        return m_value;
448
568M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
100M
    {
447
100M
        return m_value;
448
100M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
4.53M
    {
447
4.53M
        return m_value;
448
4.53M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
39.0M
    {
447
39.0M
        return m_value;
448
39.0M
    }
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
9.52k
    {
447
9.52k
        return m_value;
448
9.52k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
14.3M
    {
447
14.3M
        return m_value;
448
14.3M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
21.0M
    {
447
21.0M
        return m_value;
448
21.0M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
22.9M
    {
447
22.9M
        return m_value;
448
22.9M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
94.8M
    {
447
94.8M
        return m_value;
448
94.8M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
6.15M
    {
447
6.15M
        return m_value;
448
6.15M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
6.55M
    {
447
6.55M
        return m_value;
448
6.55M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
16.8M
    {
447
16.8M
        return m_value;
448
16.8M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
4.69M
    {
447
4.69M
        return m_value;
448
4.69M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
16.0M
    {
447
16.0M
        return m_value;
448
16.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
4.98k
    {
447
4.98k
        return m_value;
448
4.98k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
6.62M
    {
447
6.62M
        return m_value;
448
6.62M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
1.83k
    {
447
1.83k
        return m_value;
448
1.83k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
1.29k
    {
447
1.29k
        return m_value;
448
1.29k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
982
    {
447
982
        return m_value;
448
982
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
982
    {
447
982
        return m_value;
448
982
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
5.16k
    {
447
5.16k
        return m_value;
448
5.16k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
3.28M
    {
447
3.28M
        return m_value;
448
3.28M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
4.54M
    {
447
4.54M
        return m_value;
448
4.54M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.28M
    {
447
2.28M
        return m_value;
448
2.28M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
316
    {
447
316
        return m_value;
448
316
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.30M
    {
447
2.30M
        return m_value;
448
2.30M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
16.1M
    {
447
16.1M
        return m_value;
448
16.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
989k
    {
447
989k
        return m_value;
448
989k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
622k
    {
447
622k
        return m_value;
448
622k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
351k
    {
447
351k
        return m_value;
448
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
351k
    {
447
351k
        return m_value;
448
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
47.5M
    {
447
47.5M
        return m_value;
448
47.5M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
40.5M
    {
447
40.5M
        return m_value;
448
40.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
31.7M
    {
447
31.7M
        return m_value;
448
31.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
935k
    {
447
935k
        return m_value;
448
935k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
625k
    {
447
625k
        return m_value;
448
625k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
354k
    {
447
354k
        return m_value;
448
354k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
354k
    {
447
354k
        return m_value;
448
354k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
268k
    {
447
268k
        return m_value;
448
268k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
269k
    {
447
269k
        return m_value;
448
269k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
296k
    {
447
296k
        return m_value;
448
296k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
283k
    {
447
283k
        return m_value;
448
283k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
382k
    {
447
382k
        return m_value;
448
382k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
324k
    {
447
324k
        return m_value;
448
324k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
390k
    {
447
390k
        return m_value;
448
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
328k
    {
447
328k
        return m_value;
448
328k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
4.37M
    {
447
4.37M
        return m_value;
448
4.37M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
298k
    {
447
298k
        return m_value;
448
298k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
285k
    {
447
285k
        return m_value;
448
285k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
383k
    {
447
383k
        return m_value;
448
383k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
326k
    {
447
326k
        return m_value;
448
326k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
390k
    {
447
390k
        return m_value;
448
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
330k
    {
447
330k
        return m_value;
448
330k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
595
    {
447
595
        return m_value;
448
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
500
    {
447
500
        return m_value;
448
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
711
    {
447
711
        return m_value;
448
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
564
    {
447
564
        return m_value;
448
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
864
    {
447
864
        return m_value;
448
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
694
    {
447
694
        return m_value;
448
694
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
19.5M
    {
447
19.5M
        return m_value;
448
19.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
595
    {
447
595
        return m_value;
448
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
500
    {
447
500
        return m_value;
448
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
711
    {
447
711
        return m_value;
448
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
564
    {
447
564
        return m_value;
448
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
864
    {
447
864
        return m_value;
448
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
694
    {
447
694
        return m_value;
448
694
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
150k
    {
447
150k
        return m_value;
448
150k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
19.5M
    {
447
19.5M
        return m_value;
448
19.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
695k
    {
447
695k
        return m_value;
448
695k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
756k
    {
447
756k
        return m_value;
448
756k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
767k
    {
447
767k
        return m_value;
448
767k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
690k
    {
447
690k
        return m_value;
448
690k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
751k
    {
447
751k
        return m_value;
448
751k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
761k
    {
447
761k
        return m_value;
448
761k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
14.1k
    {
447
14.1k
        return m_value;
448
14.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
14.2k
    {
447
14.2k
        return m_value;
448
14.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
14.3k
    {
447
14.3k
        return m_value;
448
14.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
14.0k
    {
447
14.0k
        return m_value;
448
14.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
14.1k
    {
447
14.1k
        return m_value;
448
14.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
14.3k
    {
447
14.3k
        return m_value;
448
14.3k
    }
449
    constexpr const T& get_value() const& noexcept
450
0
    {
451
0
        return m_value;
452
0
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_value() const &
453
    constexpr T&& get_value() && noexcept
454
    {
455
        return std::move(m_value);
456
    }
457
    constexpr const T&& get_value() const&& noexcept
458
    {
459
        return std::move(m_value);
460
    }
461
462
    constexpr unexpected<E>& get_unexpected() & noexcept
463
30.5M
    {
464
30.5M
        return m_unexpected;
465
30.5M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
2.81M
    {
464
2.81M
        return m_unexpected;
465
2.81M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
448k
    {
464
448k
        return m_unexpected;
465
448k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
902k
    {
464
902k
        return m_unexpected;
465
902k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
156k
    {
464
156k
        return m_unexpected;
465
156k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
85.1k
    {
464
85.1k
        return m_unexpected;
465
85.1k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
918k
    {
464
918k
        return m_unexpected;
465
918k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
1.61M
    {
464
1.61M
        return m_unexpected;
465
1.61M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
61.0k
    {
464
61.0k
        return m_unexpected;
465
61.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
41.7k
    {
464
41.7k
        return m_unexpected;
465
41.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
8.41M
    {
464
8.41M
        return m_unexpected;
465
8.41M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
777k
    {
464
777k
        return m_unexpected;
465
777k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
150
    {
464
150
        return m_unexpected;
465
150
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
38.2k
    {
464
38.2k
        return m_unexpected;
465
38.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
3.32k
    {
464
3.32k
        return m_unexpected;
465
3.32k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
5.48k
    {
464
5.48k
        return m_unexpected;
465
5.48k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
8.15M
    {
464
8.15M
        return m_unexpected;
465
8.15M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
5.17k
    {
464
5.17k
        return m_unexpected;
465
5.17k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
1.75M
    {
464
1.75M
        return m_unexpected;
465
1.75M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
1.81M
    {
464
1.81M
        return m_unexpected;
465
1.81M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
89.1k
    {
464
89.1k
        return m_unexpected;
465
89.1k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
6.86k
    {
464
6.86k
        return m_unexpected;
465
6.86k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
1.34M
    {
464
1.34M
        return m_unexpected;
465
1.34M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
369k
    {
464
369k
        return m_unexpected;
465
369k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
738k
    {
464
738k
        return m_unexpected;
465
738k
    }
466
    constexpr const unexpected<E>& get_unexpected() const& noexcept
467
0
    {
468
0
        return m_unexpected;
469
0
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_unexpected() const &
470
    constexpr unexpected<E>&& get_unexpected() && noexcept
471
    {
472
        return std::move(m_unexpected);
473
    }
474
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
475
    {
476
        return std::move(m_unexpected);
477
    }
478
479
    SCN_NODISCARD constexpr bool has_value() const noexcept
480
1.25G
    {
481
1.25G
        return m_has_value;
482
1.25G
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
207M
    {
481
207M
        return m_has_value;
482
207M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
9.96M
    {
481
9.96M
        return m_has_value;
482
9.96M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
79.9M
    {
481
79.9M
        return m_has_value;
482
79.9M
    }
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
19.0k
    {
481
19.0k
        return m_has_value;
482
19.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
36.5M
    {
481
36.5M
        return m_has_value;
482
36.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
43.0M
    {
481
43.0M
        return m_has_value;
482
43.0M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
54.5M
    {
481
54.5M
        return m_has_value;
482
54.5M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
193M
    {
481
193M
        return m_has_value;
482
193M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
17.2M
    {
481
17.2M
        return m_has_value;
482
17.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
13.1M
    {
481
13.1M
        return m_has_value;
482
13.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
64.2M
    {
481
64.2M
        return m_has_value;
482
64.2M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
9.38M
    {
481
9.38M
        return m_has_value;
482
9.38M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
40.2M
    {
481
40.2M
        return m_has_value;
482
40.2M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
12.2k
    {
481
12.2k
        return m_has_value;
482
12.2k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
13.3M
    {
481
13.3M
        return m_has_value;
482
13.3M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
13.5k
    {
481
13.5k
        return m_has_value;
482
13.5k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
2.59k
    {
481
2.59k
        return m_has_value;
482
2.59k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
1.96k
    {
481
1.96k
        return m_has_value;
482
1.96k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.96k
    {
481
1.96k
        return m_has_value;
482
1.96k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
21.9k
    {
481
21.9k
        return m_has_value;
482
21.9k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
34.4M
    {
481
34.4M
        return m_has_value;
482
34.4M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
9.09M
    {
481
9.09M
        return m_has_value;
482
9.09M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
4.32M
    {
481
4.32M
        return m_has_value;
482
4.32M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.32M
    {
481
4.32M
        return m_has_value;
482
4.32M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.57M
    {
481
4.57M
        return m_has_value;
482
4.57M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
632
    {
481
632
        return m_has_value;
482
632
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.61M
    {
481
4.61M
        return m_has_value;
482
4.61M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
32.2M
    {
481
32.2M
        return m_has_value;
482
32.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
7.21M
    {
481
7.21M
        return m_has_value;
482
7.21M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
1.24M
    {
481
1.24M
        return m_has_value;
482
1.24M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
703k
    {
481
703k
        return m_has_value;
482
703k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
703k
    {
481
703k
        return m_has_value;
482
703k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
99.3M
    {
481
99.3M
        return m_has_value;
482
99.3M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
82.0M
    {
481
82.0M
        return m_has_value;
482
82.0M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
63.5M
    {
481
63.5M
        return m_has_value;
482
63.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
6.11M
    {
481
6.11M
        return m_has_value;
482
6.11M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
1.25M
    {
481
1.25M
        return m_has_value;
482
1.25M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
709k
    {
481
709k
        return m_has_value;
482
709k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
709k
    {
481
709k
        return m_has_value;
482
709k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
536k
    {
481
536k
        return m_has_value;
482
536k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
539k
    {
481
539k
        return m_has_value;
482
539k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
634k
    {
481
634k
        return m_has_value;
482
634k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
607k
    {
481
607k
        return m_has_value;
482
607k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
806k
    {
481
806k
        return m_has_value;
482
806k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
690k
    {
481
690k
        return m_has_value;
482
690k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
822k
    {
481
822k
        return m_has_value;
482
822k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
698k
    {
481
698k
        return m_has_value;
482
698k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
9.47M
    {
481
9.47M
        return m_has_value;
482
9.47M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
638k
    {
481
638k
        return m_has_value;
482
638k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
610k
    {
481
610k
        return m_has_value;
482
610k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
807k
    {
481
807k
        return m_has_value;
482
807k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
693k
    {
481
693k
        return m_has_value;
482
693k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
822k
    {
481
822k
        return m_has_value;
482
822k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
702k
    {
481
702k
        return m_has_value;
482
702k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.9k
    {
481
82.9k
        return m_has_value;
482
82.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.7k
    {
481
82.7k
        return m_has_value;
482
82.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.8k
    {
481
82.8k
        return m_has_value;
482
82.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.4k
    {
481
83.4k
        return m_has_value;
482
83.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
40.5M
    {
481
40.5M
        return m_has_value;
482
40.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.9k
    {
481
82.9k
        return m_has_value;
482
82.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.7k
    {
481
82.7k
        return m_has_value;
482
82.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.8k
    {
481
82.8k
        return m_has_value;
482
82.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.4k
    {
481
83.4k
        return m_has_value;
482
83.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
311k
    {
481
311k
        return m_has_value;
482
311k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
39.0M
    {
481
39.0M
        return m_has_value;
482
39.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.42M
    {
481
1.42M
        return m_has_value;
482
1.42M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.55M
    {
481
1.55M
        return m_has_value;
482
1.55M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.57M
    {
481
1.57M
        return m_has_value;
482
1.57M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.41M
    {
481
1.41M
        return m_has_value;
482
1.41M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.54M
    {
481
1.54M
        return m_has_value;
482
1.54M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.55M
    {
481
1.55M
        return m_has_value;
482
1.55M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
104k
    {
481
104k
        return m_has_value;
482
104k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
104k
    {
481
104k
        return m_has_value;
482
104k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
104k
    {
481
104k
        return m_has_value;
482
104k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
104k
    {
481
104k
        return m_has_value;
482
104k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
104k
    {
481
104k
        return m_has_value;
482
104k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
104k
    {
481
104k
        return m_has_value;
482
104k
    }
483
484
    template <typename... Args>
485
    void construct(Args&&... args) noexcept(
486
        std::is_nothrow_constructible_v<T, Args...>)
487
    {
488
        scn::detail::construct_at(&get_value(), std::forward<Args>(args)...);
489
        m_has_value = true;
490
    }
491
    template <typename... Args>
492
    void construct_unexpected(Args&&... args) noexcept(
493
        std::is_nothrow_constructible_v<E, Args...>)
494
    {
495
        scn::detail::construct_at(&get_unexpected(),
496
                                  std::forward<Args>(args)...);
497
        m_has_value = false;
498
    }
499
500
    // No-op, because T and E are trivially destructible
501
    static constexpr void destroy_value() noexcept {}
502
    static constexpr void destroy_unexpected() noexcept {}
503
504
private:
505
    union {
506
        T m_value;
507
        unexpected<E> m_unexpected;
508
        char m_deferred_init;
509
    };
510
    bool m_has_value;
511
};
512
513
template <typename E>
514
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, true> {
515
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
516
517
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
518
        : m_deferred_init(), m_has_value(false)
519
    {
520
    }
521
522
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
523
        : m_has_value(true)
524
    {
525
    }
526
527
    template <typename... Args,
528
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
529
    explicit constexpr expected_storage_base(
530
        unexpect_t,
531
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
532
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
533
          m_has_value(false)
534
    {
535
    }
536
537
    constexpr unexpected<E>& get_unexpected() & noexcept
538
    {
539
        return m_unexpected;
540
    }
541
    constexpr const unexpected<E>& get_unexpected() const& noexcept
542
    {
543
        return m_unexpected;
544
    }
545
    constexpr unexpected<E>&& get_unexpected() && noexcept
546
    {
547
        return std::move(m_unexpected);
548
    }
549
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
550
    {
551
        return std::move(m_unexpected);
552
    }
553
554
    SCN_NODISCARD constexpr bool has_value() const noexcept
555
    {
556
        return m_has_value;
557
    }
558
559
    template <typename... Args>
560
    void construct(Args&&...) noexcept
561
    {
562
        m_has_value = true;
563
    }
564
    template <typename... Args>
565
    void construct_unexpected(Args&&... args) noexcept(
566
        std::is_nothrow_constructible_v<E, Args...>)
567
    {
568
        scn::detail::construct_at(&get_unexpected(),
569
                                  std::forward<Args>(args)...);
570
        m_has_value = false;
571
    }
572
573
    static constexpr void destroy_value() noexcept {}
574
    static constexpr void destroy_unexpected() noexcept {}
575
576
private:
577
    union {
578
        unexpected<E> m_unexpected;
579
        char m_deferred_init;
580
    };
581
    bool m_has_value;
582
};
583
584
/**
585
 * Implementation of `std::max` without including `<algorithm>`
586
 */
587
template <typename T>
588
constexpr T max(T a, T b) noexcept
589
0
{
590
0
    return (a < b) ? b : a;
591
0
}
592
593
template <typename T, typename E>
594
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, false> {
595
    constexpr expected_storage_base() noexcept : m_has_value(true)
596
    {
597
        construct();
598
    }
599
600
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
601
        : m_has_value(false)
602
    {
603
    }
604
605
    template <typename... Args,
606
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
607
    explicit constexpr expected_storage_base(
608
        std::in_place_t,
609
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
610
        : m_has_value(true)
611
39.9M
    {
612
39.9M
        construct(std::forward<Args>(args)...);
613
39.9M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
151k
    {
612
151k
        construct(std::forward<Args>(args)...);
613
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
796
    {
612
796
        construct(std::forward<Args>(args)...);
613
796
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
68
    {
612
68
        construct(std::forward<Args>(args)...);
613
68
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
19.5M
    {
612
19.5M
        construct(std::forward<Args>(args)...);
613
19.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
311k
    {
612
311k
        construct(std::forward<Args>(args)...);
613
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
309k
    {
612
309k
        construct(std::forward<Args>(args)...);
613
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
724
    {
612
724
        construct(std::forward<Args>(args)...);
613
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
724
    {
612
724
        construct(std::forward<Args>(args)...);
613
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
152k
    {
612
152k
        construct(std::forward<Args>(args)...);
613
152k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
19.5M
    {
612
19.5M
        construct(std::forward<Args>(args)...);
613
19.5M
    }
614
615
    template <typename... Args,
616
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
617
    explicit constexpr expected_storage_base(
618
        unexpect_t,
619
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
620
        : m_has_value(false)
621
216k
    {
622
216k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
216k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
17.1k
    {
622
17.1k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
17.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
7.23k
    {
622
7.23k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
7.23k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
15.9k
    {
622
15.9k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
15.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
35.8k
    {
622
35.8k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
35.8k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
8.86k
    {
622
8.86k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
12
    {
622
12
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
12
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
9.24k
    {
622
9.24k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
9.24k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
46.0k
    {
622
46.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
46.0k
    {
622
46.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
46.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
9.93k
    {
622
9.93k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
9.93k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
19.8k
    {
622
19.8k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
19.8k
    }
624
625
    ~expected_storage_base()
626
40.1M
    {
627
40.1M
        if (has_value()) {
628
39.9M
            destroy_value();
629
39.9M
        }
630
216k
        else {
631
216k
            destroy_unexpected();
632
216k
        }
633
40.1M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
168k
    {
627
168k
        if (has_value()) {
628
151k
            destroy_value();
629
151k
        }
630
17.1k
        else {
631
17.1k
            destroy_unexpected();
632
17.1k
        }
633
168k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
8.03k
    {
627
8.03k
        if (has_value()) {
628
796
            destroy_value();
629
796
        }
630
7.23k
        else {
631
7.23k
            destroy_unexpected();
632
7.23k
        }
633
8.03k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
16.0k
    {
627
16.0k
        if (has_value()) {
628
68
            destroy_value();
629
68
        }
630
15.9k
        else {
631
15.9k
            destroy_unexpected();
632
15.9k
        }
633
16.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
19.5M
    {
627
19.5M
        if (has_value()) {
628
19.5M
            destroy_value();
629
19.5M
        }
630
35.8k
        else {
631
35.8k
            destroy_unexpected();
632
35.8k
        }
633
19.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
320k
    {
627
320k
        if (has_value()) {
628
311k
            destroy_value();
629
311k
        }
630
8.86k
        else {
631
8.86k
            destroy_unexpected();
632
8.86k
        }
633
320k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
12
    {
627
12
        if (has_value()) {
628
0
            destroy_value();
629
0
        }
630
12
        else {
631
12
            destroy_unexpected();
632
12
        }
633
12
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
319k
    {
627
319k
        if (has_value()) {
628
309k
            destroy_value();
629
309k
        }
630
9.24k
        else {
631
9.24k
            destroy_unexpected();
632
9.24k
        }
633
319k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
46.7k
    {
627
46.7k
        if (has_value()) {
628
724
            destroy_value();
629
724
        }
630
46.0k
        else {
631
46.0k
            destroy_unexpected();
632
46.0k
        }
633
46.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
46.7k
    {
627
46.7k
        if (has_value()) {
628
724
            destroy_value();
629
724
        }
630
46.0k
        else {
631
46.0k
            destroy_unexpected();
632
46.0k
        }
633
46.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
162k
    {
627
162k
        if (has_value()) {
628
152k
            destroy_value();
629
152k
        }
630
9.93k
        else {
631
9.93k
            destroy_unexpected();
632
9.93k
        }
633
162k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
19.5M
    {
627
19.5M
        if (has_value()) {
628
19.5M
            destroy_value();
629
19.5M
        }
630
19.8k
        else {
631
19.8k
            destroy_unexpected();
632
19.8k
        }
633
19.5M
    }
634
635
    constexpr T& get_value() & noexcept
636
39.9M
    {
637
39.9M
        return *value_ptr();
638
39.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
311k
    {
637
311k
        return *value_ptr();
638
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
309k
    {
637
309k
        return *value_ptr();
638
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
724
    {
637
724
        return *value_ptr();
638
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
724
    {
637
724
        return *value_ptr();
638
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
150k
    {
637
150k
        return *value_ptr();
638
150k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
152k
    {
637
152k
        return *value_ptr();
638
152k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
19.5M
    {
637
19.5M
        return *value_ptr();
638
19.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
19.5M
    {
637
19.5M
        return *value_ptr();
638
19.5M
    }
639
    constexpr const T& get_value() const& noexcept
640
    {
641
        return *value_ptr();
642
    }
643
    constexpr T&& get_value() && noexcept
644
    {
645
        return std::move(*value_ptr());
646
    }
647
    constexpr const T&& get_value() const&& noexcept
648
    {
649
        return std::move(*value_ptr());
650
    }
651
652
    constexpr unexpected<E>& get_unexpected() & noexcept
653
110k
    {
654
110k
        return *unexpected_ptr();
655
110k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
8.86k
    {
654
8.86k
        return *unexpected_ptr();
655
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
12
    {
654
12
        return *unexpected_ptr();
655
12
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
9.24k
    {
654
9.24k
        return *unexpected_ptr();
655
9.24k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
46.0k
    {
654
46.0k
        return *unexpected_ptr();
655
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
46.0k
    {
654
46.0k
        return *unexpected_ptr();
655
46.0k
    }
656
    constexpr const unexpected<E>& get_unexpected() const& noexcept
657
    {
658
        return *unexpected_ptr();
659
    }
660
    constexpr unexpected<E>&& get_unexpected() && noexcept
661
    {
662
        return std::move(*unexpected_ptr());
663
    }
664
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
665
    {
666
        return std::move(*unexpected_ptr());
667
    }
668
669
    SCN_NODISCARD constexpr bool has_value() const noexcept
670
120M
    {
671
120M
        return m_has_value;
672
120M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
480k
    {
671
480k
        return m_has_value;
672
480k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
8.03k
    {
671
8.03k
        return m_has_value;
672
8.03k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
16.0k
    {
671
16.0k
        return m_has_value;
672
16.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
58.5M
    {
671
58.5M
        return m_has_value;
672
58.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
960k
    {
671
960k
        return m_has_value;
672
960k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
36
    {
671
36
        return m_has_value;
672
36
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
957k
    {
671
957k
        return m_has_value;
672
957k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
140k
    {
671
140k
        return m_has_value;
672
140k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
140k
    {
671
140k
        return m_has_value;
672
140k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
477k
    {
671
477k
        return m_has_value;
672
477k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
58.5M
    {
671
58.5M
        return m_has_value;
672
58.5M
    }
673
674
    template <typename... Args>
675
    void construct(Args&&... args) noexcept(
676
        std::is_nothrow_constructible_v<T, Args...>)
677
39.9M
    {
678
39.9M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
39.9M
        m_has_value = true;
680
39.9M
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
151k
    {
678
151k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
151k
        m_has_value = true;
680
151k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
796
    {
678
796
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
796
        m_has_value = true;
680
796
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
68
    {
678
68
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
68
        m_has_value = true;
680
68
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
19.5M
    {
678
19.5M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
19.5M
        m_has_value = true;
680
19.5M
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
311k
    {
678
311k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
311k
        m_has_value = true;
680
311k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
309k
    {
678
309k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
309k
        m_has_value = true;
680
309k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
724
    {
678
724
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
724
        m_has_value = true;
680
724
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
724
    {
678
724
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
724
        m_has_value = true;
680
724
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
152k
    {
678
152k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
152k
        m_has_value = true;
680
152k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
19.5M
    {
678
19.5M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
19.5M
        m_has_value = true;
680
19.5M
    }
681
    template <typename... Args>
682
    void construct_unexpected(Args&&... args) noexcept(
683
        std::is_nothrow_constructible_v<E, Args...>)
684
216k
    {
685
216k
        scn::detail::construct_at(unexpected_ptr(),
686
216k
                                  std::forward<Args>(args)...);
687
216k
        m_has_value = false;
688
216k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
17.1k
    {
685
17.1k
        scn::detail::construct_at(unexpected_ptr(),
686
17.1k
                                  std::forward<Args>(args)...);
687
17.1k
        m_has_value = false;
688
17.1k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
7.23k
    {
685
7.23k
        scn::detail::construct_at(unexpected_ptr(),
686
7.23k
                                  std::forward<Args>(args)...);
687
7.23k
        m_has_value = false;
688
7.23k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
15.9k
    {
685
15.9k
        scn::detail::construct_at(unexpected_ptr(),
686
15.9k
                                  std::forward<Args>(args)...);
687
15.9k
        m_has_value = false;
688
15.9k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
35.8k
    {
685
35.8k
        scn::detail::construct_at(unexpected_ptr(),
686
35.8k
                                  std::forward<Args>(args)...);
687
35.8k
        m_has_value = false;
688
35.8k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
8.86k
    {
685
8.86k
        scn::detail::construct_at(unexpected_ptr(),
686
8.86k
                                  std::forward<Args>(args)...);
687
8.86k
        m_has_value = false;
688
8.86k
    }
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
12
    {
685
12
        scn::detail::construct_at(unexpected_ptr(),
686
12
                                  std::forward<Args>(args)...);
687
12
        m_has_value = false;
688
12
    }
void scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
9.24k
    {
685
9.24k
        scn::detail::construct_at(unexpected_ptr(),
686
9.24k
                                  std::forward<Args>(args)...);
687
9.24k
        m_has_value = false;
688
9.24k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
46.0k
    {
685
46.0k
        scn::detail::construct_at(unexpected_ptr(),
686
46.0k
                                  std::forward<Args>(args)...);
687
46.0k
        m_has_value = false;
688
46.0k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
46.0k
    {
685
46.0k
        scn::detail::construct_at(unexpected_ptr(),
686
46.0k
                                  std::forward<Args>(args)...);
687
46.0k
        m_has_value = false;
688
46.0k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
9.93k
    {
685
9.93k
        scn::detail::construct_at(unexpected_ptr(),
686
9.93k
                                  std::forward<Args>(args)...);
687
9.93k
        m_has_value = false;
688
9.93k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
19.8k
    {
685
19.8k
        scn::detail::construct_at(unexpected_ptr(),
686
19.8k
                                  std::forward<Args>(args)...);
687
19.8k
        m_has_value = false;
688
19.8k
    }
689
690
    void destroy_value() noexcept
691
39.9M
    {
692
39.9M
        scn::detail::destroy_at(value_ptr());
693
39.9M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
151k
    {
692
151k
        scn::detail::destroy_at(value_ptr());
693
151k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
796
    {
692
796
        scn::detail::destroy_at(value_ptr());
693
796
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
68
    {
692
68
        scn::detail::destroy_at(value_ptr());
693
68
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
19.5M
    {
692
19.5M
        scn::detail::destroy_at(value_ptr());
693
19.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
311k
    {
692
311k
        scn::detail::destroy_at(value_ptr());
693
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
309k
    {
692
309k
        scn::detail::destroy_at(value_ptr());
693
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
724
    {
692
724
        scn::detail::destroy_at(value_ptr());
693
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
724
    {
692
724
        scn::detail::destroy_at(value_ptr());
693
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
152k
    {
692
152k
        scn::detail::destroy_at(value_ptr());
693
152k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
19.5M
    {
692
19.5M
        scn::detail::destroy_at(value_ptr());
693
19.5M
    }
694
    void destroy_unexpected() noexcept
695
216k
    {
696
216k
        scn::detail::destroy_at(unexpected_ptr());
697
216k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
17.1k
    {
696
17.1k
        scn::detail::destroy_at(unexpected_ptr());
697
17.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
7.23k
    {
696
7.23k
        scn::detail::destroy_at(unexpected_ptr());
697
7.23k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
15.9k
    {
696
15.9k
        scn::detail::destroy_at(unexpected_ptr());
697
15.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
35.8k
    {
696
35.8k
        scn::detail::destroy_at(unexpected_ptr());
697
35.8k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
8.86k
    {
696
8.86k
        scn::detail::destroy_at(unexpected_ptr());
697
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
12
    {
696
12
        scn::detail::destroy_at(unexpected_ptr());
697
12
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
9.24k
    {
696
9.24k
        scn::detail::destroy_at(unexpected_ptr());
697
9.24k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
46.0k
    {
696
46.0k
        scn::detail::destroy_at(unexpected_ptr());
697
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
46.0k
    {
696
46.0k
        scn::detail::destroy_at(unexpected_ptr());
697
46.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
9.93k
    {
696
9.93k
        scn::detail::destroy_at(unexpected_ptr());
697
9.93k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
19.8k
    {
696
19.8k
        scn::detail::destroy_at(unexpected_ptr());
697
19.8k
    }
698
699
private:
700
    T* value_ptr() noexcept
701
119M
    {
702
119M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
119M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
454k
    {
702
454k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
454k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
1.59k
    {
702
1.59k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
1.59k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
136
    {
702
136
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
136
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
58.5M
    {
702
58.5M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
58.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
934k
    {
702
934k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
934k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
929k
    {
702
929k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
929k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
2.17k
    {
702
2.17k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
2.17k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
2.17k
    {
702
2.17k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
2.17k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
458k
    {
702
458k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
458k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
58.5M
    {
702
58.5M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
58.5M
    }
704
    const T* value_ptr() const noexcept
705
    {
706
        return reinterpret_cast<const T*>(
707
            SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
708
    }
709
710
    SCN_GCC_PUSH
711
    SCN_GCC_IGNORE("-Wcast-align")
712
    unexpected<E>* unexpected_ptr() noexcept
713
542k
    {
714
542k
        return reinterpret_cast<unexpected<E>*>(
715
542k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
542k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
34.3k
    {
714
34.3k
        return reinterpret_cast<unexpected<E>*>(
715
34.3k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
34.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
14.4k
    {
714
14.4k
        return reinterpret_cast<unexpected<E>*>(
715
14.4k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
14.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
31.9k
    {
714
31.9k
        return reinterpret_cast<unexpected<E>*>(
715
31.9k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
31.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
71.7k
    {
714
71.7k
        return reinterpret_cast<unexpected<E>*>(
715
71.7k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
71.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
26.5k
    {
714
26.5k
        return reinterpret_cast<unexpected<E>*>(
715
26.5k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
26.5k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
36
    {
714
36
        return reinterpret_cast<unexpected<E>*>(
715
36
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
36
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
27.7k
    {
714
27.7k
        return reinterpret_cast<unexpected<E>*>(
715
27.7k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
27.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
138k
    {
714
138k
        return reinterpret_cast<unexpected<E>*>(
715
138k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
138k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
138k
    {
714
138k
        return reinterpret_cast<unexpected<E>*>(
715
138k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
138k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
19.8k
    {
714
19.8k
        return reinterpret_cast<unexpected<E>*>(
715
19.8k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
19.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
39.7k
    {
714
39.7k
        return reinterpret_cast<unexpected<E>*>(
715
39.7k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
39.7k
    }
717
    const unexpected<E>* unexpected_ptr() const noexcept
718
    {
719
        return reinterpret_cast<const unexpected<E>*>(
720
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
721
    }
722
    SCN_GCC_POP
723
724
    static constexpr std::size_t required_size =
725
        detail::max(sizeof(T), sizeof(unexpected<E>));
726
    static constexpr std::size_t required_alignment =
727
        detail::max(alignof(T), alignof(unexpected<E>));
728
729
    alignas(required_alignment) unsigned char m_memory[required_size];
730
    bool m_has_value;
731
};
732
733
template <typename E>
734
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, false> {
735
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
736
737
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
738
        : m_has_value(false)
739
    {
740
    }
741
742
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
743
        : m_has_value(true)
744
    {
745
    }
746
747
    template <typename... Args,
748
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
749
    explicit constexpr expected_storage_base(
750
        unexpect_t,
751
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
752
        : m_has_value(false)
753
    {
754
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
755
    }
756
757
    ~expected_storage_base()
758
    {
759
        if (!has_value()) {
760
            destroy_unexpected();
761
        }
762
    }
763
764
    constexpr unexpected<E>& get_unexpected() & noexcept
765
    {
766
        return *unexpected_ptr();
767
    }
768
    constexpr const unexpected<E>& get_unexpected() const& noexcept
769
    {
770
        return *unexpected_ptr();
771
    }
772
    constexpr unexpected<E>&& get_unexpected() && noexcept
773
    {
774
        return std::move(*unexpected_ptr());
775
    }
776
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
777
    {
778
        return std::move(*unexpected_ptr());
779
    }
780
781
    SCN_NODISCARD constexpr bool has_value() const noexcept
782
    {
783
        return m_has_value;
784
    }
785
786
    template <typename... Args>
787
    constexpr void construct(Args&&...) noexcept
788
    {
789
        m_has_value = true;
790
    }
791
    template <typename... Args>
792
    void construct_unexpected(Args&&... args) noexcept(
793
        std::is_nothrow_constructible_v<E, Args...>)
794
    {
795
        scn::detail::construct_at(unexpected_ptr(),
796
                                  std::forward<Args>(args)...);
797
        m_has_value = false;
798
    }
799
800
    static constexpr void destroy_value() noexcept {}
801
    void destroy_unexpected() noexcept
802
    {
803
        scn::detail::destroy_at(unexpected_ptr());
804
    }
805
806
private:
807
    SCN_GCC_PUSH
808
    SCN_GCC_IGNORE("-Wcast-align")
809
    unexpected<E>* unexpected_ptr()
810
    {
811
        return reinterpret_cast<unexpected<E>*>(m_memory);
812
    }
813
    const unexpected<E>* unexpected_ptr() const
814
    {
815
        return reinterpret_cast<const unexpected<E>*>(m_memory);
816
    }
817
    SCN_GCC_POP
818
819
    static constexpr std::size_t required_size = sizeof(unexpected<E>);
820
    static constexpr std::size_t required_alignment = alignof(unexpected<E>);
821
822
    alignas(required_alignment) unsigned char m_memory[required_size];
823
    bool m_has_value;
824
};
825
826
template <typename T, typename U>
827
using is_void_or = std::conditional_t<std::is_void_v<T>, std::true_type, U>;
828
829
template <typename T,
830
          typename E,
831
          bool IsTriviallyCopyable =
832
              std::conjunction_v<std::is_trivially_copyable<T>,
833
                                 std::is_trivially_copyable<E>>>
834
struct expected_operations_base;
835
836
template <typename T, typename E>
837
struct SCN_TRIVIAL_ABI expected_operations_base<T, E, true>
838
    : expected_storage_base<T, E> {
839
    using expected_storage_base<T, E>::expected_storage_base;
840
};
841
842
template <typename T, typename E>
843
struct SCN_TRIVIAL_ABI expected_operations_base<T, E, false>
844
    : expected_storage_base<T, E> {
845
    using expected_storage_base<T, E>::expected_storage_base;
846
847
    expected_operations_base(const expected_operations_base& other) noexcept(
848
        std::is_nothrow_copy_constructible_v<T> &&
849
        std::is_nothrow_copy_constructible_v<E>)
850
        : expected_storage_base<T, E>(deferred_init_tag)
851
    {
852
        construct_common(other);
853
    }
854
    expected_operations_base(expected_operations_base&& other) noexcept(
855
        std::is_nothrow_move_constructible_v<T> &&
856
        std::is_nothrow_move_constructible_v<E>)
857
        : expected_storage_base<T, E>(deferred_init_tag)
858
    {
859
        construct_common(std::move(other));
860
    }
861
862
    expected_operations_base&
863
    operator=(const expected_operations_base& other) noexcept(
864
        noexcept(assign_common(other)))
865
    {
866
        assign_common(other);
867
        return *this;
868
    }
869
    expected_operations_base&
870
    operator=(expected_operations_base&& other) noexcept(
871
        noexcept(assign_common(std::move(other))))
872
    {
873
        assign_common(std::move(other));
874
        return *this;
875
    }
876
877
    ~expected_operations_base() = default;
878
879
private:
880
    template <typename Other>
881
    void construct_common(Other&& other) noexcept(
882
        noexcept(expected_storage_base<T, E>::construct(
883
            std::forward<Other>(other).get_value())) &&
884
        noexcept(expected_storage_base<T, E>::construct_unexpected(
885
            std::forward<Other>(other).get_unexpected())))
886
    {
887
        if (other.has_value()) {
888
            this->construct(std::forward<Other>(other).get_value());
889
        }
890
        else {
891
            this->construct_unexpected(
892
                std::forward<Other>(other).get_unexpected());
893
        }
894
    }
895
896
    template <typename Other>
897
    void assign_common(Other&& other) noexcept(
898
        noexcept(reassign_value(std::forward<Other>(other))) &&
899
        noexcept(reassign_unexpected(std::forward<Other>(other))) &&
900
        noexcept(assign_value_over_unexpected(std::forward<Other>(other))) &&
901
        noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
902
    {
903
        if (this->has_value()) {
904
            if (other.has_value()) {
905
                return reassign_value(std::forward<Other>(other));
906
            }
907
            return assign_unexpected_over_value(std::forward<Other>(other));
908
        }
909
910
        if (other.has_value()) {
911
            return assign_value_over_unexpected(std::forward<Other>(other));
912
        }
913
        return reassign_unexpected(std::forward<Other>(other));
914
    }
915
916
    template <typename Other>
917
    void reassign_value(Other&& other) noexcept(
918
        std::is_nothrow_assignable_v<
919
            T,
920
            decltype(std::forward<Other>(other).get_value())>)
921
    {
922
        this->get_value() = std::forward<Other>(other).get_value();
923
    }
924
925
    template <typename Other>
926
    void reassign_unexpected(Other&& other) noexcept(
927
        std::is_nothrow_assignable_v<
928
            E,
929
            decltype(std::forward<Other>(other).get_unexpected())>)
930
    {
931
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
932
    }
933
934
#if SCN_HAS_EXCEPTIONS
935
    void assign_value_over_unexpected(
936
        const expected_operations_base&
937
            other) noexcept(std::is_nothrow_copy_constructible_v<T> ||
938
                            std::is_nothrow_move_constructible_v<T>)
939
    {
940
        if constexpr (std::is_nothrow_copy_constructible_v<T>) {
941
            this->destroy_unexpected();
942
            this->construct(other.get_value());
943
        }
944
        else if constexpr (std::is_nothrow_move_constructible_v<T>) {
945
            T tmp = other.get_value();
946
            this->destroy_unexpected();
947
            this->construct(std::move(tmp));
948
        }
949
        else {
950
            auto tmp = std::move(this->get_unexpecetd());
951
            this->destroy_unexpected();
952
953
            try {
954
                this->construct(other.get());
955
            }
956
            catch (...) {
957
                this->construct_unexpected(std::move(tmp));
958
                throw;
959
            }
960
        }
961
    }
962
963
    void
964
    assign_value_over_unexpected(expected_operations_base&& other) noexcept(
965
        std::is_nothrow_move_constructible_v<T>)
966
    {
967
        if constexpr (std::is_nothrow_move_constructible_v<T>) {
968
            this->destroy_unexpected();
969
            this->construct(std::move(other).get_value());
970
        }
971
        else {
972
            auto tmp = std::move(this->get_unexpected());
973
            this->destroy_unexpected();
974
975
            try {
976
                this->construct(std::move(other).get_value());
977
            }
978
            catch (...) {
979
                this->construct_unexpected(std::move(tmp));
980
                throw;
981
            }
982
        }
983
    }
984
#else
985
    template <typename Other>
986
    void assing_value_over_unexpected(Other&& other) noexcept
987
    {
988
        this->destroy_unexpected();
989
        this->construct_value(std::forward<Other>(other).get_value());
990
    }
991
#endif
992
993
    template <typename Other>
994
    void assign_unexpected_over_value(Other&& other) noexcept(
995
        std::is_nothrow_constructible_v<
996
            E,
997
            decltype(std::forward<Other>(other).get_unexpected())>)
998
    {
999
        this->destroy_value();
1000
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1001
    }
1002
};
1003
1004
/*
1005
 * Base class trickery to conditionally mark copy and move
1006
 * constructors of an expected as =deleted.
1007
 *
1008
 * We need to do this, because otherwise utilities like
1009
 * std::is_copy_constructible wouldn't work for expected: the
1010
 * constructors need to be explicitly =deleted, not just cause a
1011
 * compiler error when trying to copy a value of a non-copyable
1012
 * type.
1013
 *
1014
 * Rationale for doing this with base classes is above.
1015
 */
1016
template <typename T,
1017
          typename E,
1018
          bool EnableCopy = (std::is_copy_constructible_v<T> &&
1019
                             std::is_copy_constructible_v<E>),
1020
          bool EnableMove = (std::is_move_constructible_v<T> &&
1021
                             std::is_move_constructible_v<E>)>
1022
struct expected_delete_ctor_base;
1023
1024
// Implementation for types that are both copy and move
1025
// constructible: Copy and move constructors are =defaulted
1026
template <typename T, typename E>
1027
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, true> {
1028
    expected_delete_ctor_base() = default;
1029
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1030
        default;
1031
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1032
    ~expected_delete_ctor_base() = default;
1033
1034
    expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
1035
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1036
};
1037
1038
// Implementation for types that are neither copy nor move
1039
// constructible: Copy and move constructors are =deleted
1040
template <typename T, typename E>
1041
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, false> {
1042
    expected_delete_ctor_base() = default;
1043
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1044
        default;
1045
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1046
    ~expected_delete_ctor_base() = default;
1047
1048
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1049
    expected_delete_ctor_base(expected_delete_ctor_base&&) = delete;
1050
};
1051
1052
// Implementation for types that are move constructible, but not
1053
// copy constructible Copy constructor is =deleted, but move
1054
// constructor is =defaulted
1055
template <typename T, typename E>
1056
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, true> {
1057
    expected_delete_ctor_base() = default;
1058
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1059
        default;
1060
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1061
    ~expected_delete_ctor_base() = default;
1062
1063
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1064
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1065
};
1066
1067
template <typename T, typename E>
1068
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, false> {
1069
    static_assert(dependent_false<T>::value,
1070
                  "Nonsensical type: copy constructible, but not move "
1071
                  "constructible");
1072
};
1073
1074
// Same as above, but for assignment
1075
template <
1076
    typename T,
1077
    typename E,
1078
    bool EnableCopy =
1079
        (std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> &&
1080
         std::is_copy_assignable_v<T> && std::is_copy_assignable_v<E>),
1081
    bool EnableMove =
1082
        (std::is_move_constructible_v<T> && std::is_move_constructible_v<E> &&
1083
         std::is_move_assignable_v<T> && std::is_move_assignable_v<E>)>
1084
struct expected_delete_assign_base;
1085
1086
template <typename T, typename E>
1087
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, true> {
1088
    expected_delete_assign_base() = default;
1089
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1090
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1091
    ~expected_delete_assign_base() = default;
1092
1093
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1094
        default;
1095
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1096
        default;
1097
};
1098
1099
template <typename T, typename E>
1100
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, false> {
1101
    expected_delete_assign_base() = default;
1102
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1103
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1104
    ~expected_delete_assign_base() = default;
1105
1106
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1107
        delete;
1108
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1109
        delete;
1110
};
1111
1112
template <typename T, typename E>
1113
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, true> {
1114
    expected_delete_assign_base() = default;
1115
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1116
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1117
    ~expected_delete_assign_base() = default;
1118
1119
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1120
        delete;
1121
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1122
        default;
1123
};
1124
1125
template <typename T, typename E>
1126
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, false> {
1127
    static_assert(dependent_false<T>::value,
1128
                  "Nonsensical type: copy assignable, but not move "
1129
                  "assignable");
1130
};
1131
1132
struct non_default_ctor_tag_t {};
1133
1134
/*
1135
 * Same as above, but for the default constructor
1136
 *
1137
 * The constructor taking a non_default_ctor_tag_t is needed, to
1138
 * signal that we're not default constructing.
1139
 */
1140
template <typename T,
1141
          typename E,
1142
          bool = std::is_default_constructible_v<T> || std::is_void_v<T>>
1143
struct SCN_TRIVIAL_ABI expected_default_ctor_base {
1144
    constexpr expected_default_ctor_base() = default;
1145
    constexpr explicit expected_default_ctor_base(
1146
        non_default_ctor_tag_t) noexcept
1147
659M
    {
1148
659M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.98M
    {
1148
4.98M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.03k
    {
1148
8.03k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
431k
    {
1148
431k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
373k
    {
1148
373k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
802k
    {
1148
802k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.03k
    {
1148
8.03k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.03k
    {
1148
8.03k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
168k
    {
1148
168k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
8.03k
    {
1148
8.03k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
168k
    {
1148
168k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
39.9M
    {
1148
39.9M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.0k
    {
1148
16.0k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
98.5k
    {
1148
98.5k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
98.3k
    {
1148
98.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
106k
    {
1148
106k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.0k
    {
1148
16.0k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.0k
    {
1148
16.0k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.0k
    {
1148
16.0k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
19.5M
    {
1148
19.5M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
19.5M
    {
1148
19.5M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
21.2M
    {
1148
21.2M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
49.6M
    {
1148
49.6M
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
28.3M
    {
1148
28.3M
    }
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
96.8M
    {
1148
96.8M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
22.0M
    {
1148
22.0M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
6.59M
    {
1148
6.59M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
34.4M
    {
1148
34.4M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.69M
    {
1148
4.69M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
320k
    {
1148
320k
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
11.0M
    {
1148
11.0M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
7.12k
    {
1148
7.12k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
10.9k
    {
1148
10.9k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
6.66M
    {
1148
6.66M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
7.49k
    {
1148
7.49k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
1.29k
    {
1148
1.29k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
982
    {
1148
982
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
982
    {
1148
982
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
12
    {
1148
12
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
18.4M
    {
1148
18.4M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.54M
    {
1148
4.54M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
319k
    {
1148
319k
    }
scn::v3::detail::expected_default_ctor_base<long, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
79.3M
    {
1148
79.3M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.28M
    {
1148
2.28M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
316
    {
1148
316
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.30M
    {
1148
2.30M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
9.52k
    {
1148
9.52k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
21.9M
    {
1148
21.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.1M
    {
1148
16.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
3.71M
    {
1148
3.71M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
622k
    {
1148
622k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
351k
    {
1148
351k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
351k
    {
1148
351k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
46.7k
    {
1148
46.7k
    }
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
41.3M
    {
1148
41.3M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
31.7M
    {
1148
31.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
3.19M
    {
1148
3.19M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
625k
    {
1148
625k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
354k
    {
1148
354k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
354k
    {
1148
354k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
46.7k
    {
1148
46.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
268k
    {
1148
268k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
269k
    {
1148
269k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<wchar_t, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
337k
    {
1148
337k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
324k
    {
1148
324k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
431k
    {
1148
431k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
369k
    {
1148
369k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.73M
    {
1148
4.73M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
339k
    {
1148
339k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
325k
    {
1148
325k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
424k
    {
1148
424k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
367k
    {
1148
367k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
431k
    {
1148
431k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
371k
    {
1148
371k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.3k
    {
1148
82.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.5k
    {
1148
82.5k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
20.2M
    {
1148
20.2M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.3k
    {
1148
82.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.5k
    {
1148
82.5k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
162k
    {
1148
162k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
19.5M
    {
1148
19.5M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
733k
    {
1148
733k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
805k
    {
1148
805k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
728k
    {
1148
728k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
789k
    {
1148
789k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
798k
    {
1148
798k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
90.0k
    {
1148
90.0k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
90.3k
    {
1148
90.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
90.0k
    {
1148
90.0k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
90.1k
    {
1148
90.1k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
90.2k
    {
1148
90.2k
    }
1149
};
1150
template <typename T, typename E>
1151
struct SCN_TRIVIAL_ABI expected_default_ctor_base<T, E, false> {
1152
    constexpr expected_default_ctor_base() = delete;
1153
    constexpr explicit expected_default_ctor_base(
1154
        non_default_ctor_tag_t) noexcept
1155
    {
1156
    }
1157
};
1158
1159
template <typename T>
1160
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
1161
1162
template <typename T>
1163
struct is_expected_impl : std::false_type {};
1164
template <typename T, typename E>
1165
struct is_expected_impl<expected<T, E>> : std::true_type {};
1166
template <typename T>
1167
using is_expected = is_expected_impl<remove_cvref_t<T>>;
1168
1169
template <typename Exp>
1170
using is_exp_void = std::is_void<typename remove_cvref_t<Exp>::value_type>;
1171
1172
template <typename Exp>
1173
using expected_value_type = typename remove_cvref_t<Exp>::value_type;
1174
1175
template <
1176
    typename F,
1177
    typename... Args,
1178
    typename = std::void_t<decltype(SCN_DECLVAL(F&&)(SCN_DECLVAL(Args&&)...))>>
1179
constexpr decltype(auto) trivial_invoke(F&& f, Args&&... args) noexcept(
1180
    noexcept(std::forward<F>(f)(std::forward<Args>(args)...)))
1181
6.03M
{
1182
6.03M
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
6.03M
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&&)
Line
Count
Source
1181
130k
{
1182
130k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
130k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&&)
Line
Count
Source
1181
223k
{
1182
223k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
223k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error&&)
Line
Count
Source
1181
381k
{
1182
381k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
381k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error&, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error&)
Line
Count
Source
1181
5.29M
{
1182
5.29M
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
5.29M
}
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error const&, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error const&)
1184
1185
// and_then
1186
1187
template <typename Exp,
1188
          typename F,
1189
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1190
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1191
                                                 *SCN_DECLVAL(Exp)))>
1192
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1193
    noexcept(trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))) &&
1194
    std::is_nothrow_constructible_v<Ret,
1195
                                    unexpect_t,
1196
                                    decltype(std::forward<Exp>(exp).error())>)
1197
{
1198
    static_assert(is_expected<Ret>::value, "F must return an expected");
1199
1200
    return SCN_LIKELY(exp.has_value())
1201
               ? trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))
1202
               : Ret(unexpect, std::forward<Exp>(exp).error());
1203
}
1204
template <typename Exp,
1205
          typename F,
1206
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1207
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1208
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1209
    noexcept(trivial_invoke(std::forward<F>(f))) &&
1210
    std::is_nothrow_constructible_v<Ret,
1211
                                    unexpect_t,
1212
                                    decltype(std::forward<Exp>(exp).error())>)
1213
{
1214
    static_assert(is_expected<Ret>::value, "F must return an expected");
1215
1216
    return SCN_LIKELY(exp.has_value())
1217
               ? trivial_invoke(std::forward<F>(f))
1218
               : Ret(unexpect, std::forward<Exp>(exp).error());
1219
}
1220
1221
// or_else
1222
1223
template <typename Exp,
1224
          typename F,
1225
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1226
                                                 SCN_DECLVAL(Exp).error()))>
1227
constexpr auto or_else_impl(Exp&& exp, F&& f) noexcept(
1228
    noexcept(trivial_invoke(std::forward<F>(f),
1229
                            std::forward<Exp>(exp).error())) &&
1230
    std::is_nothrow_constructible_v<Ret, decltype(std::forward<Exp>(exp))>)
1231
{
1232
    static_assert(is_expected<Ret>::value, "F must return an expected");
1233
1234
    return SCN_LIKELY(exp.has_value())
1235
               ? Ret(std::forward<Exp>(exp))
1236
               : trivial_invoke(std::forward<F>(f),
1237
                                std::forward<Exp>(exp).error());
1238
}
1239
1240
// transform
1241
1242
template <typename Exp,
1243
          typename F,
1244
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1245
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1246
                                                 *SCN_DECLVAL(Exp)))>
1247
constexpr auto transform_impl(Exp&& exp, F&& f)
1248
{
1249
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1250
    if constexpr (std::is_void_v<Ret>) {
1251
        if (SCN_LIKELY(exp.has_value())) {
1252
            trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp));
1253
            return result();
1254
        }
1255
        return result(unexpect, std::forward<Exp>(exp).error());
1256
    }
1257
    else {
1258
        return SCN_LIKELY(exp.has_value())
1259
                   ? result(trivial_invoke(std::forward<F>(f),
1260
                                           *std::forward<Exp>(exp)))
1261
                   : result(unexpect, std::forward<Exp>(exp).error());
1262
    }
1263
}
1264
template <typename Exp,
1265
          typename F,
1266
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1267
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1268
constexpr auto transform_impl(Exp&& exp, F&& f)
1269
{
1270
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1271
    if constexpr (std::is_void_v<Ret>) {
1272
        if (SCN_LIKELY(exp.has_value())) {
1273
            trivial_invoke(std::forward<F>(f));
1274
            return result();
1275
        }
1276
        return result(unexpect, std::forward<Exp>(exp).error());
1277
    }
1278
    else {
1279
        return SCN_LIKELY(exp.has_value())
1280
                   ? result(trivial_invoke(std::forward<F>(f)))
1281
                   : result(unexpect, std::forward<Exp>(exp).error());
1282
    }
1283
}
1284
1285
// transform_error
1286
1287
template <typename Exp,
1288
          typename F,
1289
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1290
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1291
                                                 SCN_DECLVAL(Exp).error()))>
1292
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1293
96.6M
{
1294
96.6M
    if constexpr (std::is_void_v<Ret>) {
1295
96.6M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
96.6M
        if (SCN_LIKELY(exp.has_value())) {
1297
96.6M
            return result(*std::forward<Exp>(exp));
1298
96.6M
        }
1299
1300
96.6M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
96.6M
        return result(unexpect, monostate{});
1302
96.6M
    }
1303
96.6M
    else {
1304
96.6M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
96.6M
        return SCN_LIKELY(exp.has_value())
1306
96.6M
                   ? result(*std::forward<Exp>(exp))
1307
96.6M
                   : result(unexpect,
1308
6.03M
                            trivial_invoke(std::forward<F>(f),
1309
6.03M
                                           std::forward<Exp>(exp).error()));
1310
96.6M
    }
1311
96.6M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.66M
{
1294
4.66M
    if constexpr (std::is_void_v<Ret>) {
1295
4.66M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.66M
        if (SCN_LIKELY(exp.has_value())) {
1297
4.66M
            return result(*std::forward<Exp>(exp));
1298
4.66M
        }
1299
1300
4.66M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.66M
        return result(unexpect, monostate{});
1302
4.66M
    }
1303
4.66M
    else {
1304
4.66M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.66M
        return SCN_LIKELY(exp.has_value())
1306
4.66M
                   ? result(*std::forward<Exp>(exp))
1307
4.66M
                   : result(unexpect,
1308
55.1k
                            trivial_invoke(std::forward<F>(f),
1309
55.1k
                                           std::forward<Exp>(exp).error()));
1310
4.66M
    }
1311
4.66M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
20.1M
{
1294
20.1M
    if constexpr (std::is_void_v<Ret>) {
1295
20.1M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
20.1M
        if (SCN_LIKELY(exp.has_value())) {
1297
20.1M
            return result(*std::forward<Exp>(exp));
1298
20.1M
        }
1299
1300
20.1M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
20.1M
        return result(unexpect, monostate{});
1302
20.1M
    }
1303
20.1M
    else {
1304
20.1M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
20.1M
        return SCN_LIKELY(exp.has_value())
1306
20.1M
                   ? result(*std::forward<Exp>(exp))
1307
20.1M
                   : result(unexpect,
1308
8.73k
                            trivial_invoke(std::forward<F>(f),
1309
8.73k
                                           std::forward<Exp>(exp).error()));
1310
20.1M
    }
1311
20.1M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.83M
{
1294
4.83M
    if constexpr (std::is_void_v<Ret>) {
1295
4.83M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.83M
        if (SCN_LIKELY(exp.has_value())) {
1297
4.83M
            return result(*std::forward<Exp>(exp));
1298
4.83M
        }
1299
1300
4.83M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.83M
        return result(unexpect, monostate{});
1302
4.83M
    }
1303
4.83M
    else {
1304
4.83M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.83M
        return SCN_LIKELY(exp.has_value())
1306
4.83M
                   ? result(*std::forward<Exp>(exp))
1307
4.83M
                   : result(unexpect,
1308
53.4k
                            trivial_invoke(std::forward<F>(f),
1309
53.4k
                                           std::forward<Exp>(exp).error()));
1310
4.83M
    }
1311
4.83M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
8.02M
{
1294
8.02M
    if constexpr (std::is_void_v<Ret>) {
1295
8.02M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
8.02M
        if (SCN_LIKELY(exp.has_value())) {
1297
8.02M
            return result(*std::forward<Exp>(exp));
1298
8.02M
        }
1299
1300
8.02M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
8.02M
        return result(unexpect, monostate{});
1302
8.02M
    }
1303
8.02M
    else {
1304
8.02M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
8.02M
        return SCN_LIKELY(exp.has_value())
1306
8.02M
                   ? result(*std::forward<Exp>(exp))
1307
8.02M
                   : result(unexpect,
1308
71.9k
                            trivial_invoke(std::forward<F>(f),
1309
71.9k
                                           std::forward<Exp>(exp).error()));
1310
8.02M
    }
1311
8.02M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.16M
{
1294
2.16M
    if constexpr (std::is_void_v<Ret>) {
1295
2.16M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.16M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.16M
            return result(*std::forward<Exp>(exp));
1298
2.16M
        }
1299
1300
2.16M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.16M
        return result(unexpect, monostate{});
1302
2.16M
    }
1303
2.16M
    else {
1304
2.16M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.16M
        return SCN_LIKELY(exp.has_value())
1306
2.16M
                   ? result(*std::forward<Exp>(exp))
1307
2.16M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.16M
    }
1311
2.16M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
1.64M
{
1294
1.64M
    if constexpr (std::is_void_v<Ret>) {
1295
1.64M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.64M
        if (SCN_LIKELY(exp.has_value())) {
1297
1.64M
            return result(*std::forward<Exp>(exp));
1298
1.64M
        }
1299
1300
1.64M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.64M
        return result(unexpect, monostate{});
1302
1.64M
    }
1303
1.64M
    else {
1304
1.64M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.64M
        return SCN_LIKELY(exp.has_value())
1306
1.64M
                   ? result(*std::forward<Exp>(exp))
1307
1.64M
                   : result(unexpect,
1308
80.7k
                            trivial_invoke(std::forward<F>(f),
1309
80.7k
                                           std::forward<Exp>(exp).error()));
1310
1.64M
    }
1311
1.64M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
3.03k
{
1294
3.03k
    if constexpr (std::is_void_v<Ret>) {
1295
3.03k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
3.03k
        if (SCN_LIKELY(exp.has_value())) {
1297
3.03k
            return result(*std::forward<Exp>(exp));
1298
3.03k
        }
1299
1300
3.03k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
3.03k
        return result(unexpect, monostate{});
1302
3.03k
    }
1303
3.03k
    else {
1304
3.03k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
3.03k
        return SCN_LIKELY(exp.has_value())
1306
3.03k
                   ? result(*std::forward<Exp>(exp))
1307
3.03k
                   : result(unexpect,
1308
40
                            trivial_invoke(std::forward<F>(f),
1309
40
                                           std::forward<Exp>(exp).error()));
1310
3.03k
    }
1311
3.03k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
1.94k
{
1294
1.94k
    if constexpr (std::is_void_v<Ret>) {
1295
1.94k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.94k
        if (SCN_LIKELY(exp.has_value())) {
1297
1.94k
            return result(*std::forward<Exp>(exp));
1298
1.94k
        }
1299
1300
1.94k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.94k
        return result(unexpect, monostate{});
1302
1.94k
    }
1303
1.94k
    else {
1304
1.94k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.94k
        return SCN_LIKELY(exp.has_value())
1306
1.94k
                   ? result(*std::forward<Exp>(exp))
1307
1.94k
                   : result(unexpect,
1308
110
                            trivial_invoke(std::forward<F>(f),
1309
110
                                           std::forward<Exp>(exp).error()));
1310
1.94k
    }
1311
1.94k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
982
{
1294
982
    if constexpr (std::is_void_v<Ret>) {
1295
982
        using result = expected<expected_value_type<Exp>, monostate>;
1296
982
        if (SCN_LIKELY(exp.has_value())) {
1297
982
            return result(*std::forward<Exp>(exp));
1298
982
        }
1299
1300
982
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
982
        return result(unexpect, monostate{});
1302
982
    }
1303
982
    else {
1304
982
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
982
        return SCN_LIKELY(exp.has_value())
1306
982
                   ? result(*std::forward<Exp>(exp))
1307
982
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
982
    }
1311
982
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
970
{
1294
970
    if constexpr (std::is_void_v<Ret>) {
1295
970
        using result = expected<expected_value_type<Exp>, monostate>;
1296
970
        if (SCN_LIKELY(exp.has_value())) {
1297
970
            return result(*std::forward<Exp>(exp));
1298
970
        }
1299
1300
970
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
970
        return result(unexpect, monostate{});
1302
970
    }
1303
970
    else {
1304
970
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
970
        return SCN_LIKELY(exp.has_value())
1306
970
                   ? result(*std::forward<Exp>(exp))
1307
970
                   : result(unexpect,
1308
970
                            trivial_invoke(std::forward<F>(f),
1309
970
                                           std::forward<Exp>(exp).error()));
1310
970
    }
1311
970
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.16M
{
1294
2.16M
    if constexpr (std::is_void_v<Ret>) {
1295
2.16M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.16M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.16M
            return result(*std::forward<Exp>(exp));
1298
2.16M
        }
1299
1300
2.16M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.16M
        return result(unexpect, monostate{});
1302
2.16M
    }
1303
2.16M
    else {
1304
2.16M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.16M
        return SCN_LIKELY(exp.has_value())
1306
2.16M
                   ? result(*std::forward<Exp>(exp))
1307
2.16M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.16M
    }
1311
2.16M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.28M
{
1294
2.28M
    if constexpr (std::is_void_v<Ret>) {
1295
2.28M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.28M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.28M
            return result(*std::forward<Exp>(exp));
1298
2.28M
        }
1299
1300
2.28M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.28M
        return result(unexpect, monostate{});
1302
2.28M
    }
1303
2.28M
    else {
1304
2.28M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.28M
        return SCN_LIKELY(exp.has_value())
1306
2.28M
                   ? result(*std::forward<Exp>(exp))
1307
2.28M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.28M
    }
1311
2.28M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
2.22M
{
1294
2.22M
    if constexpr (std::is_void_v<Ret>) {
1295
2.22M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.22M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.22M
            return result(*std::forward<Exp>(exp));
1298
2.22M
        }
1299
1300
2.22M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.22M
        return result(unexpect, monostate{});
1302
2.22M
    }
1303
2.22M
    else {
1304
2.22M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.22M
        return SCN_LIKELY(exp.has_value())
1306
2.22M
                   ? result(*std::forward<Exp>(exp))
1307
2.22M
                   : result(unexpect,
1308
2.22M
                            trivial_invoke(std::forward<F>(f),
1309
2.22M
                                           std::forward<Exp>(exp).error()));
1310
2.22M
    }
1311
2.22M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
316
{
1294
316
    if constexpr (std::is_void_v<Ret>) {
1295
316
        using result = expected<expected_value_type<Exp>, monostate>;
1296
316
        if (SCN_LIKELY(exp.has_value())) {
1297
316
            return result(*std::forward<Exp>(exp));
1298
316
        }
1299
1300
316
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
316
        return result(unexpect, monostate{});
1302
316
    }
1303
316
    else {
1304
316
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
316
        return SCN_LIKELY(exp.has_value())
1306
316
                   ? result(*std::forward<Exp>(exp))
1307
316
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
316
    }
1311
316
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
632
{
1294
632
    if constexpr (std::is_void_v<Ret>) {
1295
632
        using result = expected<expected_value_type<Exp>, monostate>;
1296
632
        if (SCN_LIKELY(exp.has_value())) {
1297
632
            return result(*std::forward<Exp>(exp));
1298
632
        }
1299
1300
632
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
632
        return result(unexpect, monostate{});
1302
632
    }
1303
632
    else {
1304
632
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
632
        return SCN_LIKELY(exp.has_value())
1306
632
                   ? result(*std::forward<Exp>(exp))
1307
632
                   : result(unexpect,
1308
632
                            trivial_invoke(std::forward<F>(f),
1309
632
                                           std::forward<Exp>(exp).error()));
1310
632
    }
1311
632
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.30M
{
1294
2.30M
    if constexpr (std::is_void_v<Ret>) {
1295
2.30M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.30M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.30M
            return result(*std::forward<Exp>(exp));
1298
2.30M
        }
1299
1300
2.30M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.30M
        return result(unexpect, monostate{});
1302
2.30M
    }
1303
2.30M
    else {
1304
2.30M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.30M
        return SCN_LIKELY(exp.has_value())
1306
2.30M
                   ? result(*std::forward<Exp>(exp))
1307
2.30M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.30M
    }
1311
2.30M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
2.20M
{
1294
2.20M
    if constexpr (std::is_void_v<Ret>) {
1295
2.20M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.20M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.20M
            return result(*std::forward<Exp>(exp));
1298
2.20M
        }
1299
1300
2.20M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.20M
        return result(unexpect, monostate{});
1302
2.20M
    }
1303
2.20M
    else {
1304
2.20M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.20M
        return SCN_LIKELY(exp.has_value())
1306
2.20M
                   ? result(*std::forward<Exp>(exp))
1307
2.20M
                   : result(unexpect,
1308
2.20M
                            trivial_invoke(std::forward<F>(f),
1309
2.20M
                                           std::forward<Exp>(exp).error()));
1310
2.20M
    }
1311
2.20M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
966k
{
1294
966k
    if constexpr (std::is_void_v<Ret>) {
1295
966k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
966k
        if (SCN_LIKELY(exp.has_value())) {
1297
966k
            return result(*std::forward<Exp>(exp));
1298
966k
        }
1299
1300
966k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
966k
        return result(unexpect, monostate{});
1302
966k
    }
1303
966k
    else {
1304
966k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
966k
        return SCN_LIKELY(exp.has_value())
1306
966k
                   ? result(*std::forward<Exp>(exp))
1307
966k
                   : result(unexpect,
1308
75.6k
                            trivial_invoke(std::forward<F>(f),
1309
75.6k
                                           std::forward<Exp>(exp).error()));
1310
966k
    }
1311
966k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
351k
{
1294
351k
    if constexpr (std::is_void_v<Ret>) {
1295
351k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
351k
        if (SCN_LIKELY(exp.has_value())) {
1297
351k
            return result(*std::forward<Exp>(exp));
1298
351k
        }
1299
1300
351k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
351k
        return result(unexpect, monostate{});
1302
351k
    }
1303
351k
    else {
1304
351k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
351k
        return SCN_LIKELY(exp.has_value())
1306
351k
                   ? result(*std::forward<Exp>(exp))
1307
351k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
351k
    }
1311
351k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
303k
{
1294
303k
    if constexpr (std::is_void_v<Ret>) {
1295
303k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
303k
        if (SCN_LIKELY(exp.has_value())) {
1297
303k
            return result(*std::forward<Exp>(exp));
1298
303k
        }
1299
1300
303k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
303k
        return result(unexpect, monostate{});
1302
303k
    }
1303
303k
    else {
1304
303k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
303k
        return SCN_LIKELY(exp.has_value())
1306
303k
                   ? result(*std::forward<Exp>(exp))
1307
303k
                   : result(unexpect,
1308
300k
                            trivial_invoke(std::forward<F>(f),
1309
300k
                                           std::forward<Exp>(exp).error()));
1310
303k
    }
1311
303k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
39.6M
{
1294
39.6M
    if constexpr (std::is_void_v<Ret>) {
1295
39.6M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
39.6M
        if (SCN_LIKELY(exp.has_value())) {
1297
39.6M
            return result(*std::forward<Exp>(exp));
1298
39.6M
        }
1299
1300
39.6M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
39.6M
        return result(unexpect, monostate{});
1302
39.6M
    }
1303
39.6M
    else {
1304
39.6M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
39.6M
        return SCN_LIKELY(exp.has_value())
1306
39.6M
                   ? result(*std::forward<Exp>(exp))
1307
39.6M
                   : result(unexpect,
1308
13.0k
                            trivial_invoke(std::forward<F>(f),
1309
13.0k
                                           std::forward<Exp>(exp).error()));
1310
39.6M
    }
1311
39.6M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
973k
{
1294
973k
    if constexpr (std::is_void_v<Ret>) {
1295
973k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
973k
        if (SCN_LIKELY(exp.has_value())) {
1297
973k
            return result(*std::forward<Exp>(exp));
1298
973k
        }
1299
1300
973k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
973k
        return result(unexpect, monostate{});
1302
973k
    }
1303
973k
    else {
1304
973k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
973k
        return SCN_LIKELY(exp.has_value())
1306
973k
                   ? result(*std::forward<Exp>(exp))
1307
973k
                   : result(unexpect,
1308
75.8k
                            trivial_invoke(std::forward<F>(f),
1309
75.8k
                                           std::forward<Exp>(exp).error()));
1310
973k
    }
1311
973k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
354k
{
1294
354k
    if constexpr (std::is_void_v<Ret>) {
1295
354k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
354k
        if (SCN_LIKELY(exp.has_value())) {
1297
354k
            return result(*std::forward<Exp>(exp));
1298
354k
        }
1299
1300
354k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
354k
        return result(unexpect, monostate{});
1302
354k
    }
1303
354k
    else {
1304
354k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
354k
        return SCN_LIKELY(exp.has_value())
1306
354k
                   ? result(*std::forward<Exp>(exp))
1307
354k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
354k
    }
1311
354k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
268k
{
1294
268k
    if constexpr (std::is_void_v<Ret>) {
1295
268k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
268k
        if (SCN_LIKELY(exp.has_value())) {
1297
268k
            return result(*std::forward<Exp>(exp));
1298
268k
        }
1299
1300
268k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
268k
        return result(unexpect, monostate{});
1302
268k
    }
1303
268k
    else {
1304
268k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
268k
        return SCN_LIKELY(exp.has_value())
1306
268k
                   ? result(*std::forward<Exp>(exp))
1307
268k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
268k
    }
1311
268k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
492k
{
1294
492k
    if constexpr (std::is_void_v<Ret>) {
1295
492k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
492k
        if (SCN_LIKELY(exp.has_value())) {
1297
492k
            return result(*std::forward<Exp>(exp));
1298
492k
        }
1299
1300
492k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
492k
        return result(unexpect, monostate{});
1302
492k
    }
1303
492k
    else {
1304
492k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
492k
        return SCN_LIKELY(exp.has_value())
1306
492k
                   ? result(*std::forward<Exp>(exp))
1307
492k
                   : result(unexpect,
1308
492k
                            trivial_invoke(std::forward<F>(f),
1309
492k
                                           std::forward<Exp>(exp).error()));
1310
492k
    }
1311
492k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
269k
{
1294
269k
    if constexpr (std::is_void_v<Ret>) {
1295
269k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
269k
        if (SCN_LIKELY(exp.has_value())) {
1297
269k
            return result(*std::forward<Exp>(exp));
1298
269k
        }
1299
1300
269k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
269k
        return result(unexpect, monostate{});
1302
269k
    }
1303
269k
    else {
1304
269k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
269k
        return SCN_LIKELY(exp.has_value())
1306
269k
                   ? result(*std::forward<Exp>(exp))
1307
269k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
269k
    }
1311
269k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
372k
{
1294
372k
    if constexpr (std::is_void_v<Ret>) {
1295
372k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
372k
        if (SCN_LIKELY(exp.has_value())) {
1297
372k
            return result(*std::forward<Exp>(exp));
1298
372k
        }
1299
1300
372k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
372k
        return result(unexpect, monostate{});
1302
372k
    }
1303
372k
    else {
1304
372k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
372k
        return SCN_LIKELY(exp.has_value())
1306
372k
                   ? result(*std::forward<Exp>(exp))
1307
372k
                   : result(unexpect,
1308
372k
                            trivial_invoke(std::forward<F>(f),
1309
372k
                                           std::forward<Exp>(exp).error()));
1310
372k
    }
1311
372k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.09k
{
1294
2.09k
    if constexpr (std::is_void_v<Ret>) {
1295
2.09k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.09k
        if (SCN_LIKELY(exp.has_value())) {
1297
2.09k
            return result(*std::forward<Exp>(exp));
1298
2.09k
        }
1299
1300
2.09k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.09k
        return result(unexpect, monostate{});
1302
2.09k
    }
1303
2.09k
    else {
1304
2.09k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.09k
        return SCN_LIKELY(exp.has_value())
1306
2.09k
                   ? result(*std::forward<Exp>(exp))
1307
2.09k
                   : result(unexpect,
1308
104
                            trivial_invoke(std::forward<F>(f),
1309
104
                                           std::forward<Exp>(exp).error()));
1310
2.09k
    }
1311
2.09k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
1312
template <typename Exp,
1313
          typename F,
1314
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1315
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1316
                                                 SCN_DECLVAL(Exp).error()))>
1317
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1318
{
1319
    if constexpr (std::is_void_v<Ret>) {
1320
        using result = expected<expected_value_type<Exp>, monostate>;
1321
        if (SCN_LIKELY(exp.has_value())) {
1322
            return result();
1323
        }
1324
1325
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1326
        return result(unexpect, monostate{});
1327
    }
1328
    else {
1329
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1330
        return SCN_LIKELY(exp.has_value())
1331
                   ? result()
1332
                   : result(unexpect,
1333
                            trivial_invoke(std::forward<F>(f),
1334
                                           std::forward<Exp>(exp).error()));
1335
    }
1336
}
1337
1338
template <class T, class E, class U, class G, class UR, class GR>
1339
using enable_from_other =
1340
    std::enable_if_t<std::is_constructible_v<T, UR> &&
1341
                     std::is_constructible_v<E, GR> &&
1342
                     !std::is_constructible_v<T, expected<U, G>&> &&
1343
                     !std::is_constructible_v<T, expected<U, G>&&> &&
1344
                     !std::is_constructible_v<T, const expected<U, G>&> &&
1345
                     !std::is_constructible_v<T, const expected<U, G>&&> &&
1346
                     !std::is_convertible_v<expected<U, G>&, T> &&
1347
                     !std::is_convertible_v<expected<U, G>&&, T> &&
1348
                     !std::is_convertible_v<const expected<U, G>&, T> &&
1349
                     !std::is_convertible_v<const expected<U, G>&&, T>>;
1350
}  // namespace detail
1351
1352
template <typename T, typename E>
1353
class SCN_TRIVIAL_ABI expected
1354
    : private detail::expected_operations_base<T, E>,
1355
      private detail::expected_delete_ctor_base<T, E>,
1356
      private detail::expected_delete_assign_base<T, E>,
1357
      private detail::expected_default_ctor_base<T, E> {
1358
    using base = detail::expected_operations_base<T, E>;
1359
    using ctor_base = detail::expected_default_ctor_base<T, E>;
1360
1361
    static_assert(std::is_void_v<T> || std::is_destructible_v<T>,
1362
                  "T must be void or Destructible");
1363
    static_assert(std::is_destructible_v<E>, "E must be Destructible");
1364
1365
    static_assert(!std::is_same_v<std::remove_cv_t<T>, std::in_place_t>);
1366
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpect_t>);
1367
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpected<E>>);
1368
1369
public:
1370
    using value_type = T;
1371
    using error_type = E;
1372
    using unexpected_type = unexpected<E>;
1373
1374
    template <typename U>
1375
    using rebind = expected<U, error_type>;
1376
1377
    // Special member functions are defaulted, implementations provided
1378
    // by base classes
1379
1380
    constexpr expected() = default;
1381
1382
    constexpr expected(const expected&) = default;
1383
    constexpr expected(expected&&) = default;
1384
    constexpr expected& operator=(const expected&) = default;
1385
    constexpr expected& operator=(expected&&) = default;
1386
1387
    ~expected() = default;
1388
1389
    /**
1390
     * Construct an expected value.
1391
     * Intentionally non-explicit, to make constructing an expected
1392
     * value as transparent as possible.
1393
     */
1394
    template <typename U = value_type,
1395
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1396
    SCN_IMPLICIT constexpr expected(U&& val) noexcept(
1397
        std::is_nothrow_constructible_v<base, std::in_place_t, U&&>)
1398
        : base(std::in_place, std::forward<U>(val)),
1399
          ctor_base(detail::non_default_ctor_tag_t{})
1400
600M
    {
1401
600M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
1400
4.53M
    {
1401
4.53M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Line
Count
Source
1400
122
    {
1401
122
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Line
Count
Source
1400
382k
    {
1401
382k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Line
Count
Source
1400
324k
    {
1401
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Line
Count
Source
1400
756k
    {
1401
756k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
151k
    {
1401
151k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
796
    {
1401
796
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
1400
151k
    {
1401
151k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1400
39.0M
    {
1401
39.0M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Line
Count
Source
1400
62
    {
1401
62
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Line
Count
Source
1400
711
    {
1401
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Line
Count
Source
1400
564
    {
1401
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Line
Count
Source
1400
14.2k
    {
1401
14.2k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
68
    {
1401
68
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
19.5M
    {
1401
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
1400
19.5M
    {
1401
19.5M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
14.9M
    {
1401
14.9M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
39.7M
    {
1401
39.7M
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
21.8M
    {
1401
21.8M
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
79.3M
    {
1401
79.3M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
21.9M
    {
1401
21.9M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
1400
6.55M
    {
1401
6.55M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
1400
2.07M
    {
1401
2.07M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
4.69M
    {
1401
4.69M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
12.4M
    {
1401
12.4M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
311k
    {
1401
311k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
1400
3.33M
    {
1401
3.33M
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
10.9M
    {
1401
10.9M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
6.94k
    {
1401
6.94k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
4.35k
    {
1401
4.35k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::expected<std::__1::pair<char const*, long>, void>(std::__1::pair<char const*, long>&&)
Line
Count
Source
1400
6.62M
    {
1401
6.62M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
1.29k
    {
1401
1.29k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
1.83k
    {
1401
1.83k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1400
982
    {
1401
982
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1400
982
    {
1401
982
    }
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<char const*&, void>(char const*&)
Line
Count
Source
1400
1.62M
    {
1401
1.62M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
4.54M
    {
1401
4.54M
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
1.00M
    {
1401
1.00M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
309k
    {
1401
309k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const*&, void>(char const*&)
Line
Count
Source
1400
3.35M
    {
1401
3.35M
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<long, void>(long&&)
Line
Count
Source
1400
76.2M
    {
1401
76.2M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
2.28M
    {
1401
2.28M
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
316
    {
1401
316
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
2.30M
    {
1401
2.30M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::expected<std::__1::regex_constants::syntax_option_type, void>(std::__1::regex_constants::syntax_option_type&&)
Line
Count
Source
1400
9.52k
    {
1401
9.52k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
1400
822
    {
1401
822
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
1400
810
    {
1401
810
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const* const&, void>(char const* const&)
Line
Count
Source
1400
4.06k
    {
1401
4.06k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
21.8M
    {
1401
21.8M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
1400
16.1M
    {
1401
16.1M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
1400
5.42k
    {
1401
5.42k
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
622k
    {
1401
622k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
940k
    {
1401
940k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
1400
351k
    {
1401
351k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
1400
351k
    {
1401
351k
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
724
    {
1401
724
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
1400
7.83M
    {
1401
7.83M
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
41.2M
    {
1401
41.2M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::expected<std::__1::pair<wchar_t const*, long>, void>(std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
1400
31.7M
    {
1401
31.7M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1400
4.09k
    {
1401
4.09k
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
625k
    {
1401
625k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
914k
    {
1401
914k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1400
354k
    {
1401
354k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1400
354k
    {
1401
354k
    }
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
724
    {
1401
724
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1400
15.6M
    {
1401
15.6M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
268k
    {
1401
268k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
269k
    {
1401
269k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
1400
34
    {
1401
34
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const* const&, void>(wchar_t const* const&)
Line
Count
Source
1400
68
    {
1401
68
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<int, void>(int&&)
Line
Count
Source
1400
250k
    {
1401
250k
    }
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::expected<wchar_t, void>(wchar_t&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>&&)
Line
Count
Source
1400
296k
    {
1401
296k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>&&)
Line
Count
Source
1400
283k
    {
1401
283k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>&&)
Line
Count
Source
1400
390k
    {
1401
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>&&)
Line
Count
Source
1400
328k
    {
1401
328k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
1400
4.37M
    {
1401
4.37M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>&&)
Line
Count
Source
1400
298k
    {
1401
298k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>&&)
Line
Count
Source
1400
285k
    {
1401
285k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>&&)
Line
Count
Source
1400
383k
    {
1401
383k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>&&)
Line
Count
Source
1400
326k
    {
1401
326k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>&&)
Line
Count
Source
1400
390k
    {
1401
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>&&)
Line
Count
Source
1400
330k
    {
1401
330k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>&&)
Line
Count
Source
1400
595
    {
1401
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>&&)
Line
Count
Source
1400
500
    {
1401
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>&&)
Line
Count
Source
1400
864
    {
1401
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>&&)
Line
Count
Source
1400
694
    {
1401
694
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
1400
19.5M
    {
1401
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>&&)
Line
Count
Source
1400
595
    {
1401
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>&&)
Line
Count
Source
1400
500
    {
1401
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>&&)
Line
Count
Source
1400
711
    {
1401
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>&&)
Line
Count
Source
1400
564
    {
1401
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>&&)
Line
Count
Source
1400
864
    {
1401
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>&&)
Line
Count
Source
1400
694
    {
1401
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
152k
    {
1401
152k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
19.5M
    {
1401
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>&&)
Line
Count
Source
1400
695k
    {
1401
695k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>&&)
Line
Count
Source
1400
767k
    {
1401
767k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>&&)
Line
Count
Source
1400
690k
    {
1401
690k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>&&)
Line
Count
Source
1400
751k
    {
1401
751k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>&&)
Line
Count
Source
1400
761k
    {
1401
761k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>&&)
Line
Count
Source
1400
14.1k
    {
1401
14.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>&&)
Line
Count
Source
1400
14.3k
    {
1401
14.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>&&)
Line
Count
Source
1400
14.0k
    {
1401
14.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>&&)
Line
Count
Source
1400
14.1k
    {
1401
14.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>&&)
Line
Count
Source
1400
14.3k
    {
1401
14.3k
    }
1402
1403
    /// Construct an expected value directly in-place
1404
    template <typename... Args,
1405
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
1406
    explicit constexpr expected(std::in_place_t, Args&&... args) noexcept(
1407
        std::is_nothrow_constructible_v<base, std::in_place_t, Args&&...>)
1408
        : base(std::in_place, std::forward<Args>(args)...),
1409
          ctor_base(detail::non_default_ctor_tag_t{})
1410
    {
1411
    }
1412
1413
    template <typename G = E,
1414
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1415
              std::enable_if_t<!std::is_convertible_v<const G&, E>>* = nullptr>
1416
    explicit constexpr expected(const unexpected<G>& e) noexcept(
1417
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1418
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1419
    {
1420
    }
1421
    template <typename G = E,
1422
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1423
              std::enable_if_t<std::is_convertible_v<const G&, E>>* = nullptr>
1424
    SCN_IMPLICIT constexpr expected(const unexpected<G>& e) noexcept(
1425
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1426
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1427
    {
1428
    }
1429
1430
    template <typename G = E,
1431
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1432
              std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
1433
    explicit constexpr expected(unexpected<G>&& e) noexcept(
1434
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1435
        : base(unexpect, std::move(e.error())),
1436
          ctor_base(detail::non_default_ctor_tag_t{})
1437
    {
1438
    }
1439
    template <typename G = E,
1440
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1441
              std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
1442
    SCN_IMPLICIT constexpr expected(unexpected<G>&& e) noexcept(
1443
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1444
        : base(unexpect, std::move(e.error())),
1445
          ctor_base(detail::non_default_ctor_tag_t{})
1446
53.1M
    {
1447
53.1M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
448k
    {
1447
448k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
7.90k
    {
1447
7.90k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
48.8k
    {
1447
48.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
48.8k
    {
1447
48.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
46.0k
    {
1447
46.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.03k
    {
1447
8.03k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.03k
    {
1447
8.03k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
17.1k
    {
1447
17.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
7.23k
    {
1447
7.23k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
17.1k
    {
1447
17.1k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
902k
    {
1447
902k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
15.9k
    {
1447
15.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
97.7k
    {
1447
97.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
97.7k
    {
1447
97.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
92.0k
    {
1447
92.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
16.0k
    {
1447
16.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
16.0k
    {
1447
16.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
15.9k
    {
1447
15.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
35.8k
    {
1447
35.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
35.8k
    {
1447
35.8k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
837k
    {
1447
837k
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
1.49M
    {
1447
1.49M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
581k
    {
1447
581k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
156k
    {
1447
156k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
41.7k
    {
1447
41.7k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
2.35M
    {
1447
2.35M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
17.5M
    {
1447
17.5M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
491
    {
1447
491
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.86k
    {
1447
8.86k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
61.1k
    {
1447
61.1k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
186
    {
1447
186
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
38.2k
    {
1447
38.2k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
4.16k
    {
1447
4.16k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
426
    {
1447
426
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
5.12k
    {
1447
5.12k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
12
    {
1447
12
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
2.35M
    {
1447
2.35M
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
13.4M
    {
1447
13.4M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
156
    {
1447
156
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
9.24k
    {
1447
9.24k
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
2.81M
    {
1447
2.81M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
1.27M
    {
1447
1.27M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
85.1k
    {
1447
85.1k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
5.17k
    {
1447
5.17k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
344k
    {
1447
344k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
2.34M
    {
1447
2.34M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
27
    {
1447
27
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
46.0k
    {
1447
46.0k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
89.1k
    {
1447
89.1k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
6.86k
    {
1447
6.86k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
345k
    {
1447
345k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
1.85M
    {
1447
1.85M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
12
    {
1447
12
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
46.0k
    {
1447
46.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
369k
    {
1447
369k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
738k
    {
1447
738k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
9.93k
    {
1447
9.93k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
19.8k
    {
1447
19.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
37.9k
    {
1447
37.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
37.9k
    {
1447
37.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
37.9k
    {
1447
37.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
37.9k
    {
1447
37.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
37.9k
    {
1447
37.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
75.9k
    {
1447
75.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
75.9k
    {
1447
75.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
75.9k
    {
1447
75.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
75.9k
    {
1447
75.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
75.9k
    {
1447
75.9k
    }
1448
1449
    /// Construct an unexpected value directly in-place
1450
    template <typename... Args,
1451
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
1452
    explicit constexpr expected(unexpect_t, Args&&... args) noexcept(
1453
        std::is_nothrow_constructible_v<base, unexpect_t, Args&&...>)
1454
        : base(unexpect, std::forward<Args>(args)...),
1455
          ctor_base(detail::non_default_ctor_tag_t{})
1456
6.03M
    {
1457
6.03M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
2.35M
    {
1457
2.35M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
801k
    {
1457
801k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
2.26M
    {
1457
2.26M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
71.9k
    {
1457
71.9k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
1.64k
    {
1457
1.64k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
110
    {
1457
110
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
75.6k
    {
1457
75.6k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
385k
    {
1457
385k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
75.8k
    {
1457
75.8k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
104
    {
1457
104
    }
1458
1459
    template <
1460
        typename U,
1461
        typename G,
1462
        std::enable_if_t<!(std::is_convertible_v<const U&, T> &&
1463
                           std::is_convertible_v<const G&, E>)>* = nullptr,
1464
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1465
    explicit constexpr expected(const expected<U, G>& other) noexcept(
1466
        std::is_nothrow_constructible_v<T, const U&> &&
1467
        std::is_nothrow_constructible_v<E, const G&>)
1468
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1469
    {
1470
        if (other.has_value()) {
1471
            this->construct(*other);
1472
        }
1473
        else {
1474
            this->construct_unexpected(other.error());
1475
        }
1476
    }
1477
    template <
1478
        typename U,
1479
        typename G,
1480
        std::enable_if_t<(std::is_convertible_v<const U&, T> &&
1481
                          std::is_convertible_v<const G&, E>)>* = nullptr,
1482
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1483
    constexpr expected(const expected<U, G>& other) noexcept(
1484
        std::is_nothrow_constructible_v<T, const U&> &&
1485
        std::is_nothrow_constructible_v<E, const G&>)
1486
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1487
    {
1488
        if (other.has_value()) {
1489
            this->construct(*other);
1490
        }
1491
        else {
1492
            this->construct_unexpected(other.error());
1493
        }
1494
    }
1495
1496
    template <typename U,
1497
              typename G,
1498
              std::enable_if_t<!(std::is_convertible_v<U&&, T> &&
1499
                                 std::is_convertible_v<G&&, E>)>* = nullptr,
1500
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1501
    explicit constexpr expected(expected<U, G>&& other) noexcept(
1502
        std::is_nothrow_constructible_v<T, U&&> &&
1503
        std::is_nothrow_constructible_v<E, G&&>)
1504
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1505
    {
1506
        if (other.has_value()) {
1507
            this->construct(std::move(*other));
1508
        }
1509
        else {
1510
            this->construct_unexpected(std::move(other.error()));
1511
        }
1512
    }
1513
    template <typename U,
1514
              typename G,
1515
              std::enable_if_t<(std::is_convertible_v<U&&, T> &&
1516
                                std::is_convertible_v<G&&, E>)>* = nullptr,
1517
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1518
    constexpr expected(expected<U, G>&& other) noexcept(
1519
        std::is_nothrow_constructible_v<T, U&&> &&
1520
        std::is_nothrow_constructible_v<E, G&&>)
1521
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1522
    {
1523
        if (other.has_value()) {
1524
            this->construct(std::move(*other));
1525
        }
1526
        else {
1527
            this->construct_unexpected(std::move(other.error()));
1528
        }
1529
    }
1530
1531
    template <typename U = value_type,
1532
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1533
    expected& operator=(U&& val) noexcept(
1534
        noexcept(assign_value(std::forward<U>(val))))
1535
    {
1536
        assign_value(std::forward<U>(val));
1537
        return *this;
1538
    }
1539
1540
    expected& operator=(const unexpected_type& unex) noexcept(
1541
        noexcept(assign_unexpected(unex)))
1542
    {
1543
        assign_unexpected(unex);
1544
        return *this;
1545
    }
1546
    expected& operator=(unexpected_type&& unex) noexcept(
1547
        noexcept(assign_unexpected(std::move(unex))))
1548
    {
1549
        assign_unexpected(std::move(unex));
1550
        return *this;
1551
    }
1552
1553
    /// Destroys the contained value, and then initializes the expected
1554
    /// value directly in-place.
1555
    template <typename... Args,
1556
              std::enable_if_t<std::is_constructible_v<T, Args...>>* = nullptr>
1557
    decltype(auto) emplace(Args&&... args) noexcept(
1558
        std::is_nothrow_constructible_v<T, Args...>)
1559
    {
1560
        emplace_impl(std::forward<Args>(args)...);
1561
        if constexpr (!std::is_void_v<T>) {
1562
            return this->get_value();
1563
        }
1564
    }
1565
1566
    using base::has_value;
1567
    constexpr explicit operator bool() const noexcept
1568
602M
    {
1569
602M
        return has_value();
1570
602M
    }
scn::v3::expected<long, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
104M
    {
1569
104M
        return has_value();
1570
104M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
4.98M
    {
1569
4.98M
        return has_value();
1570
4.98M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
39.9M
    {
1569
39.9M
        return has_value();
1570
39.9M
    }
scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
9.52k
    {
1569
9.52k
        return has_value();
1570
9.52k
    }
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::operator bool() const
scn::v3::expected<char const*, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
30.6M
    {
1569
30.6M
        return has_value();
1570
30.6M
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
97.1M
    {
1569
97.1M
        return has_value();
1570
97.1M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
9.39M
    {
1569
9.39M
        return has_value();
1570
9.39M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
6.59M
    {
1569
6.59M
        return has_value();
1570
6.59M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
35.1M
    {
1569
35.1M
        return has_value();
1570
35.1M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.40M
    {
1569
2.40M
        return has_value();
1570
2.40M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.16M
    {
1569
2.16M
        return has_value();
1570
2.16M
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
320k
    {
1569
320k
        return has_value();
1570
320k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
23.4M
    {
1569
23.4M
        return has_value();
1570
23.4M
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
6.21M
    {
1569
6.21M
        return has_value();
1570
6.21M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.14k
    {
1569
2.14k
        return has_value();
1570
2.14k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
6.66M
    {
1569
6.66M
        return has_value();
1570
6.66M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
6.83k
    {
1569
6.83k
        return has_value();
1570
6.83k
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
982
    {
1569
982
        return has_value();
1570
982
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
982
    {
1569
982
        return has_value();
1570
982
    }
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
12
    {
1569
12
        return has_value();
1570
12
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
11.2k
    {
1569
11.2k
        return has_value();
1570
11.2k
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
20.7M
    {
1569
20.7M
        return has_value();
1570
20.7M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.23M
    {
1569
2.23M
        return has_value();
1570
2.23M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.16M
    {
1569
2.16M
        return has_value();
1570
2.16M
    }
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
319k
    {
1569
319k
        return has_value();
1570
319k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.28M
    {
1569
2.28M
        return has_value();
1570
2.28M
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
316
    {
1569
316
        return has_value();
1570
316
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.30M
    {
1569
2.30M
        return has_value();
1570
2.30M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
796k
    {
1569
796k
        return has_value();
1570
796k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
16.1M
    {
1569
16.1M
        return has_value();
1570
16.1M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
3.67M
    {
1569
3.67M
        return has_value();
1570
3.67M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
353k
    {
1569
353k
        return has_value();
1570
353k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
351k
    {
1569
351k
        return has_value();
1570
351k
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
46.7k
    {
1569
46.7k
        return has_value();
1570
46.7k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
49.9M
    {
1569
49.9M
        return has_value();
1570
49.9M
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
746k
    {
1569
746k
        return has_value();
1570
746k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
31.7M
    {
1569
31.7M
        return has_value();
1570
31.7M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
3.46M
    {
1569
3.46M
        return has_value();
1570
3.46M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
355k
    {
1569
355k
        return has_value();
1570
355k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
354k
    {
1569
354k
        return has_value();
1570
354k
    }
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
46.7k
    {
1569
46.7k
        return has_value();
1570
46.7k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
268k
    {
1569
268k
        return has_value();
1570
268k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
269k
    {
1569
269k
        return has_value();
1570
269k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
337k
    {
1569
337k
        return has_value();
1570
337k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
324k
    {
1569
324k
        return has_value();
1570
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
423k
    {
1569
423k
        return has_value();
1570
423k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
365k
    {
1569
365k
        return has_value();
1570
365k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
431k
    {
1569
431k
        return has_value();
1570
431k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
369k
    {
1569
369k
        return has_value();
1570
369k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
4.73M
    {
1569
4.73M
        return has_value();
1570
4.73M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
339k
    {
1569
339k
        return has_value();
1570
339k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
325k
    {
1569
325k
        return has_value();
1570
325k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
424k
    {
1569
424k
        return has_value();
1570
424k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
367k
    {
1569
367k
        return has_value();
1570
367k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
431k
    {
1569
431k
        return has_value();
1570
431k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
371k
    {
1569
371k
        return has_value();
1570
371k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.3k
    {
1569
82.3k
        return has_value();
1570
82.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.5k
    {
1569
82.5k
        return has_value();
1570
82.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
20.2M
    {
1569
20.2M
        return has_value();
1570
20.2M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.3k
    {
1569
82.3k
        return has_value();
1570
82.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.5k
    {
1569
82.5k
        return has_value();
1570
82.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
160k
    {
1569
160k
        return has_value();
1570
160k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
160k
    {
1569
160k
        return has_value();
1570
160k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
162k
    {
1569
162k
        return has_value();
1570
162k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
19.5M
    {
1569
19.5M
        return has_value();
1570
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
19.5M
    {
1569
19.5M
        return has_value();
1570
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
19.5M
    {
1569
19.5M
        return has_value();
1570
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
733k
    {
1569
733k
        return has_value();
1570
733k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
794k
    {
1569
794k
        return has_value();
1570
794k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
805k
    {
1569
805k
        return has_value();
1570
805k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
728k
    {
1569
728k
        return has_value();
1570
728k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
789k
    {
1569
789k
        return has_value();
1570
789k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
798k
    {
1569
798k
        return has_value();
1570
798k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
90.0k
    {
1569
90.0k
        return has_value();
1570
90.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
90.1k
    {
1569
90.1k
        return has_value();
1570
90.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
90.3k
    {
1569
90.3k
        return has_value();
1570
90.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
90.0k
    {
1569
90.0k
        return has_value();
1570
90.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
90.1k
    {
1569
90.1k
        return has_value();
1570
90.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
90.2k
    {
1569
90.2k
        return has_value();
1570
90.2k
    }
1571
1572
    /// Get the unexpected value, if one is contained in *this
1573
    constexpr error_type& error() & noexcept
1574
29.9M
    {
1575
29.9M
        SCN_EXPECT(!has_value());
1576
29.9M
        return this->get_unexpected().error();
1577
29.9M
    }
scn::v3::expected<long, scn::v3::scan_error>::error() &
Line
Count
Source
1574
2.81M
    {
1575
2.81M
        SCN_EXPECT(!has_value());
1576
2.81M
        return this->get_unexpected().error();
1577
2.81M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
448k
    {
1575
448k
        SCN_EXPECT(!has_value());
1576
448k
        return this->get_unexpected().error();
1577
448k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
902k
    {
1575
902k
        SCN_EXPECT(!has_value());
1576
902k
        return this->get_unexpected().error();
1577
902k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::error() &
scn::v3::expected<char const*, scn::v3::scan_error>::error() &
Line
Count
Source
1574
918k
    {
1575
918k
        SCN_EXPECT(!has_value());
1576
918k
        return this->get_unexpected().error();
1577
918k
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::error() &
Line
Count
Source
1574
1.61M
    {
1575
1.61M
        SCN_EXPECT(!has_value());
1576
1.61M
        return this->get_unexpected().error();
1577
1.61M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
41.7k
    {
1575
41.7k
        SCN_EXPECT(!has_value());
1576
41.7k
        return this->get_unexpected().error();
1577
41.7k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::error() &
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
29.0k
    {
1575
29.0k
        SCN_EXPECT(!has_value());
1576
29.0k
        return this->get_unexpected().error();
1577
29.0k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
8.33M
    {
1575
8.33M
        SCN_EXPECT(!has_value());
1576
8.33M
        return this->get_unexpected().error();
1577
8.33M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
8.86k
    {
1575
8.86k
        SCN_EXPECT(!has_value());
1576
8.86k
        return this->get_unexpected().error();
1577
8.86k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::error() &
Line
Count
Source
1574
777k
    {
1575
777k
        SCN_EXPECT(!has_value());
1576
777k
        return this->get_unexpected().error();
1577
777k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
38.2k
    {
1575
38.2k
        SCN_EXPECT(!has_value());
1576
38.2k
        return this->get_unexpected().error();
1577
38.2k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() &
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
2.35k
    {
1575
2.35k
        SCN_EXPECT(!has_value());
1576
2.35k
        return this->get_unexpected().error();
1577
2.35k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
12
    {
1575
12
        SCN_EXPECT(!has_value());
1576
12
        return this->get_unexpected().error();
1577
12
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
5.48k
    {
1575
5.48k
        SCN_EXPECT(!has_value());
1576
5.48k
        return this->get_unexpected().error();
1577
5.48k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
7.46k
    {
1575
7.46k
        SCN_EXPECT(!has_value());
1576
7.46k
        return this->get_unexpected().error();
1577
7.46k
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
8.15M
    {
1575
8.15M
        SCN_EXPECT(!has_value());
1576
8.15M
        return this->get_unexpected().error();
1577
8.15M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
9.24k
    {
1575
9.24k
        SCN_EXPECT(!has_value());
1576
9.24k
        return this->get_unexpected().error();
1577
9.24k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
5.17k
    {
1575
5.17k
        SCN_EXPECT(!has_value());
1576
5.17k
        return this->get_unexpected().error();
1577
5.17k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::error() &
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
831
    {
1575
831
        SCN_EXPECT(!has_value());
1576
831
        return this->get_unexpected().error();
1577
831
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
1.45M
    {
1575
1.45M
        SCN_EXPECT(!has_value());
1576
1.45M
        return this->get_unexpected().error();
1577
1.45M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
46.0k
    {
1575
46.0k
        SCN_EXPECT(!has_value());
1576
46.0k
        return this->get_unexpected().error();
1577
46.0k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::error() &
Line
Count
Source
1574
1.81M
    {
1575
1.81M
        SCN_EXPECT(!has_value());
1576
1.81M
        return this->get_unexpected().error();
1577
1.81M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
6.86k
    {
1575
6.86k
        SCN_EXPECT(!has_value());
1576
6.86k
        return this->get_unexpected().error();
1577
6.86k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::error() &
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
360
    {
1575
360
        SCN_EXPECT(!has_value());
1576
360
        return this->get_unexpected().error();
1577
360
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
1.34M
    {
1575
1.34M
        SCN_EXPECT(!has_value());
1576
1.34M
        return this->get_unexpected().error();
1577
1.34M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
46.0k
    {
1575
46.0k
        SCN_EXPECT(!has_value());
1576
46.0k
        return this->get_unexpected().error();
1577
46.0k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() &
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
369k
    {
1575
369k
        SCN_EXPECT(!has_value());
1576
369k
        return this->get_unexpected().error();
1577
369k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
738k
    {
1575
738k
        SCN_EXPECT(!has_value());
1576
738k
        return this->get_unexpected().error();
1577
738k
    }
1578
    constexpr const error_type& error() const& noexcept
1579
0
    {
1580
0
        SCN_EXPECT(!has_value());
1581
0
        return this->get_unexpected().error();
1582
0
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<char const*, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::error() const &
1583
    constexpr error_type&& error() && noexcept
1584
735k
    {
1585
735k
        SCN_EXPECT(!has_value());
1586
735k
        return std::move(this->get_unexpected().error());
1587
735k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
127k
    {
1585
127k
        SCN_EXPECT(!has_value());
1586
127k
        return std::move(this->get_unexpected().error());
1587
127k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
84.3k
    {
1585
84.3k
        SCN_EXPECT(!has_value());
1586
84.3k
        return std::move(this->get_unexpected().error());
1587
84.3k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
53.5k
    {
1585
53.5k
        SCN_EXPECT(!has_value());
1586
53.5k
        return std::move(this->get_unexpected().error());
1587
53.5k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
80.7k
    {
1585
80.7k
        SCN_EXPECT(!has_value());
1586
80.7k
        return std::move(this->get_unexpected().error());
1587
80.7k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
150
    {
1585
150
        SCN_EXPECT(!has_value());
1586
150
        return std::move(this->get_unexpected().error());
1587
150
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
970
    {
1585
970
        SCN_EXPECT(!has_value());
1586
970
        return std::move(this->get_unexpected().error());
1587
970
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
300k
    {
1585
300k
        SCN_EXPECT(!has_value());
1586
300k
        return std::move(this->get_unexpected().error());
1587
300k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
88.8k
    {
1585
88.8k
        SCN_EXPECT(!has_value());
1586
88.8k
        return std::move(this->get_unexpected().error());
1587
88.8k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
1588
    constexpr const error_type&& error() const&& noexcept
1589
    {
1590
        SCN_EXPECT(!has_value());
1591
        return std::move(this->get_unexpected().error());
1592
    }
1593
1594
    /// Get the expected value, if one is contained in *this
1595
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1596
    constexpr U& value() & noexcept
1597
608M
    {
1598
608M
        SCN_EXPECT(has_value());
1599
608M
        return this->get_value();
1600
608M
    }
long& scn::v3::expected<long, scn::v3::scan_error>::value<long, (void*)0>() &
Line
Count
Source
1597
100M
    {
1598
100M
        SCN_EXPECT(has_value());
1599
100M
        return this->get_value();
1600
100M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
4.53M
    {
1598
4.53M
        SCN_EXPECT(has_value());
1599
4.53M
        return this->get_value();
1600
4.53M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
39.0M
    {
1598
39.0M
        SCN_EXPECT(has_value());
1599
39.0M
        return this->get_value();
1600
39.0M
    }
std::__1::regex_constants::syntax_option_type& scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::value<std::__1::regex_constants::syntax_option_type, (void*)0>() &
Line
Count
Source
1597
9.52k
    {
1598
9.52k
        SCN_EXPECT(has_value());
1599
9.52k
        return this->get_value();
1600
9.52k
    }
Unexecuted instantiation: wchar_t& scn::v3::expected<wchar_t, scn::v3::scan_error>::value<wchar_t, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
14.3M
    {
1598
14.3M
        SCN_EXPECT(has_value());
1599
14.3M
        return this->get_value();
1600
14.3M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
21.0M
    {
1598
21.0M
        SCN_EXPECT(has_value());
1599
21.0M
        return this->get_value();
1600
21.0M
    }
char const*& scn::v3::expected<char const*, scn::v3::scan_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
22.9M
    {
1598
22.9M
        SCN_EXPECT(has_value());
1599
22.9M
        return this->get_value();
1600
22.9M
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
94.8M
    {
1598
94.8M
        SCN_EXPECT(has_value());
1599
94.8M
        return this->get_value();
1600
94.8M
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::eof_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
6.15M
    {
1598
6.15M
        SCN_EXPECT(has_value());
1599
6.15M
        return this->get_value();
1600
6.15M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, (void*)0>() &
Line
Count
Source
1597
6.55M
    {
1598
6.55M
        SCN_EXPECT(has_value());
1599
6.55M
        return this->get_value();
1600
6.55M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
16.8M
    {
1598
16.8M
        SCN_EXPECT(has_value());
1599
16.8M
        return this->get_value();
1600
16.8M
    }
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
4.69M
    {
1598
4.69M
        SCN_EXPECT(has_value());
1599
4.69M
        return this->get_value();
1600
4.69M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
311k
    {
1598
311k
        SCN_EXPECT(has_value());
1599
311k
        return this->get_value();
1600
311k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
16.0M
    {
1598
16.0M
        SCN_EXPECT(has_value());
1599
16.0M
        return this->get_value();
1600
16.0M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
4.98k
    {
1598
4.98k
        SCN_EXPECT(has_value());
1599
4.98k
        return this->get_value();
1600
4.98k
    }
std::__1::pair<char const*, long>& scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::value<std::__1::pair<char const*, long>, (void*)0>() &
Line
Count
Source
1597
6.62M
    {
1598
6.62M
        SCN_EXPECT(has_value());
1599
6.62M
        return this->get_value();
1600
6.62M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
1.83k
    {
1598
1.83k
        SCN_EXPECT(has_value());
1599
1.83k
        return this->get_value();
1600
1.83k
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
1.29k
    {
1598
1.29k
        SCN_EXPECT(has_value());
1599
1.29k
        return this->get_value();
1600
1.29k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Line
Count
Source
1597
982
    {
1598
982
        SCN_EXPECT(has_value());
1599
982
        return this->get_value();
1600
982
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Line
Count
Source
1597
982
    {
1598
982
        SCN_EXPECT(has_value());
1599
982
        return this->get_value();
1600
982
    }
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
5.16k
    {
1598
5.16k
        SCN_EXPECT(has_value());
1599
5.16k
        return this->get_value();
1600
5.16k
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::parse_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
3.28M
    {
1598
3.28M
        SCN_EXPECT(has_value());
1599
3.28M
        return this->get_value();
1600
3.28M
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
4.54M
    {
1598
4.54M
        SCN_EXPECT(has_value());
1599
4.54M
        return this->get_value();
1600
4.54M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
309k
    {
1598
309k
        SCN_EXPECT(has_value());
1599
309k
        return this->get_value();
1600
309k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
2.28M
    {
1598
2.28M
        SCN_EXPECT(has_value());
1599
2.28M
        return this->get_value();
1600
2.28M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
316
    {
1598
316
        SCN_EXPECT(has_value());
1599
316
        return this->get_value();
1600
316
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
2.30M
    {
1598
2.30M
        SCN_EXPECT(has_value());
1599
2.30M
        return this->get_value();
1600
2.30M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, (void*)0>() &
Line
Count
Source
1597
16.1M
    {
1598
16.1M
        SCN_EXPECT(has_value());
1599
16.1M
        return this->get_value();
1600
16.1M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
989k
    {
1598
989k
        SCN_EXPECT(has_value());
1599
989k
        return this->get_value();
1600
989k
    }
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
622k
    {
1598
622k
        SCN_EXPECT(has_value());
1599
622k
        return this->get_value();
1600
622k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
351k
    {
1598
351k
        SCN_EXPECT(has_value());
1599
351k
        return this->get_value();
1600
351k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
351k
    {
1598
351k
        SCN_EXPECT(has_value());
1599
351k
        return this->get_value();
1600
351k
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
724
    {
1598
724
        SCN_EXPECT(has_value());
1599
724
        return this->get_value();
1600
724
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
47.5M
    {
1598
47.5M
        SCN_EXPECT(has_value());
1599
47.5M
        return this->get_value();
1600
47.5M
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
40.5M
    {
1598
40.5M
        SCN_EXPECT(has_value());
1599
40.5M
        return this->get_value();
1600
40.5M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
std::__1::pair<wchar_t const*, long>& scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::value<std::__1::pair<wchar_t const*, long>, (void*)0>() &
Line
Count
Source
1597
31.7M
    {
1598
31.7M
        SCN_EXPECT(has_value());
1599
31.7M
        return this->get_value();
1600
31.7M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
935k
    {
1598
935k
        SCN_EXPECT(has_value());
1599
935k
        return this->get_value();
1600
935k
    }
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
625k
    {
1598
625k
        SCN_EXPECT(has_value());
1599
625k
        return this->get_value();
1600
625k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
354k
    {
1598
354k
        SCN_EXPECT(has_value());
1599
354k
        return this->get_value();
1600
354k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
354k
    {
1598
354k
        SCN_EXPECT(has_value());
1599
354k
        return this->get_value();
1600
354k
    }
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
724
    {
1598
724
        SCN_EXPECT(has_value());
1599
724
        return this->get_value();
1600
724
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
268k
    {
1598
268k
        SCN_EXPECT(has_value());
1599
268k
        return this->get_value();
1600
268k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
269k
    {
1598
269k
        SCN_EXPECT(has_value());
1599
269k
        return this->get_value();
1600
269k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, (void*)0>() &
Line
Count
Source
1597
296k
    {
1598
296k
        SCN_EXPECT(has_value());
1599
296k
        return this->get_value();
1600
296k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, (void*)0>() &
Line
Count
Source
1597
283k
    {
1598
283k
        SCN_EXPECT(has_value());
1599
283k
        return this->get_value();
1600
283k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, (void*)0>() &
Line
Count
Source
1597
382k
    {
1598
382k
        SCN_EXPECT(has_value());
1599
382k
        return this->get_value();
1600
382k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, (void*)0>() &
Line
Count
Source
1597
324k
    {
1598
324k
        SCN_EXPECT(has_value());
1599
324k
        return this->get_value();
1600
324k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, (void*)0>() &
Line
Count
Source
1597
390k
    {
1598
390k
        SCN_EXPECT(has_value());
1599
390k
        return this->get_value();
1600
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
328k
    {
1598
328k
        SCN_EXPECT(has_value());
1599
328k
        return this->get_value();
1600
328k
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &
Line
Count
Source
1597
4.37M
    {
1598
4.37M
        SCN_EXPECT(has_value());
1599
4.37M
        return this->get_value();
1600
4.37M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, (void*)0>() &
Line
Count
Source
1597
298k
    {
1598
298k
        SCN_EXPECT(has_value());
1599
298k
        return this->get_value();
1600
298k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, (void*)0>() &
Line
Count
Source
1597
285k
    {
1598
285k
        SCN_EXPECT(has_value());
1599
285k
        return this->get_value();
1600
285k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, (void*)0>() &
Line
Count
Source
1597
383k
    {
1598
383k
        SCN_EXPECT(has_value());
1599
383k
        return this->get_value();
1600
383k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, (void*)0>() &
Line
Count
Source
1597
326k
    {
1598
326k
        SCN_EXPECT(has_value());
1599
326k
        return this->get_value();
1600
326k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, (void*)0>() &
Line
Count
Source
1597
390k
    {
1598
390k
        SCN_EXPECT(has_value());
1599
390k
        return this->get_value();
1600
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
330k
    {
1598
330k
        SCN_EXPECT(has_value());
1599
330k
        return this->get_value();
1600
330k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, (void*)0>() &
Line
Count
Source
1597
595
    {
1598
595
        SCN_EXPECT(has_value());
1599
595
        return this->get_value();
1600
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, (void*)0>() &
Line
Count
Source
1597
500
    {
1598
500
        SCN_EXPECT(has_value());
1599
500
        return this->get_value();
1600
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, (void*)0>() &
Line
Count
Source
1597
711
    {
1598
711
        SCN_EXPECT(has_value());
1599
711
        return this->get_value();
1600
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, (void*)0>() &
Line
Count
Source
1597
564
    {
1598
564
        SCN_EXPECT(has_value());
1599
564
        return this->get_value();
1600
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, (void*)0>() &
Line
Count
Source
1597
864
    {
1598
864
        SCN_EXPECT(has_value());
1599
864
        return this->get_value();
1600
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
694
    {
1598
694
        SCN_EXPECT(has_value());
1599
694
        return this->get_value();
1600
694
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &
Line
Count
Source
1597
19.5M
    {
1598
19.5M
        SCN_EXPECT(has_value());
1599
19.5M
        return this->get_value();
1600
19.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, (void*)0>() &
Line
Count
Source
1597
595
    {
1598
595
        SCN_EXPECT(has_value());
1599
595
        return this->get_value();
1600
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, (void*)0>() &
Line
Count
Source
1597
500
    {
1598
500
        SCN_EXPECT(has_value());
1599
500
        return this->get_value();
1600
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, (void*)0>() &
Line
Count
Source
1597
711
    {
1598
711
        SCN_EXPECT(has_value());
1599
711
        return this->get_value();
1600
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, (void*)0>() &
Line
Count
Source
1597
564
    {
1598
564
        SCN_EXPECT(has_value());
1599
564
        return this->get_value();
1600
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, (void*)0>() &
Line
Count
Source
1597
864
    {
1598
864
        SCN_EXPECT(has_value());
1599
864
        return this->get_value();
1600
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
694
    {
1598
694
        SCN_EXPECT(has_value());
1599
694
        return this->get_value();
1600
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
150k
    {
1598
150k
        SCN_EXPECT(has_value());
1599
150k
        return this->get_value();
1600
150k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, (void*)0>() &
Line
Count
Source
1597
150k
    {
1598
150k
        SCN_EXPECT(has_value());
1599
150k
        return this->get_value();
1600
150k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
152k
    {
1598
152k
        SCN_EXPECT(has_value());
1599
152k
        return this->get_value();
1600
152k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
19.5M
    {
1598
19.5M
        SCN_EXPECT(has_value());
1599
19.5M
        return this->get_value();
1600
19.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
19.5M
    {
1598
19.5M
        SCN_EXPECT(has_value());
1599
19.5M
        return this->get_value();
1600
19.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
19.5M
    {
1598
19.5M
        SCN_EXPECT(has_value());
1599
19.5M
        return this->get_value();
1600
19.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, (void*)0>() &
Line
Count
Source
1597
695k
    {
1598
695k
        SCN_EXPECT(has_value());
1599
695k
        return this->get_value();
1600
695k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, (void*)0>() &
Line
Count
Source
1597
756k
    {
1598
756k
        SCN_EXPECT(has_value());
1599
756k
        return this->get_value();
1600
756k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, (void*)0>() &
Line
Count
Source
1597
767k
    {
1598
767k
        SCN_EXPECT(has_value());
1599
767k
        return this->get_value();
1600
767k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, (void*)0>() &
Line
Count
Source
1597
690k
    {
1598
690k
        SCN_EXPECT(has_value());
1599
690k
        return this->get_value();
1600
690k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, (void*)0>() &
Line
Count
Source
1597
751k
    {
1598
751k
        SCN_EXPECT(has_value());
1599
751k
        return this->get_value();
1600
751k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, (void*)0>() &
Line
Count
Source
1597
761k
    {
1598
761k
        SCN_EXPECT(has_value());
1599
761k
        return this->get_value();
1600
761k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, (void*)0>() &
Line
Count
Source
1597
14.1k
    {
1598
14.1k
        SCN_EXPECT(has_value());
1599
14.1k
        return this->get_value();
1600
14.1k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, (void*)0>() &
Line
Count
Source
1597
14.2k
    {
1598
14.2k
        SCN_EXPECT(has_value());
1599
14.2k
        return this->get_value();
1600
14.2k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, (void*)0>() &
Line
Count
Source
1597
14.3k
    {
1598
14.3k
        SCN_EXPECT(has_value());
1599
14.3k
        return this->get_value();
1600
14.3k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, (void*)0>() &
Line
Count
Source
1597
14.0k
    {
1598
14.0k
        SCN_EXPECT(has_value());
1599
14.0k
        return this->get_value();
1600
14.0k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, (void*)0>() &
Line
Count
Source
1597
14.1k
    {
1598
14.1k
        SCN_EXPECT(has_value());
1599
14.1k
        return this->get_value();
1600
14.1k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, (void*)0>() &
Line
Count
Source
1597
14.3k
    {
1598
14.3k
        SCN_EXPECT(has_value());
1599
14.3k
        return this->get_value();
1600
14.3k
    }
1601
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1602
    constexpr const U& value() const& noexcept
1603
0
    {
1604
0
        SCN_EXPECT(has_value());
1605
0
        return this->get_value();
1606
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::eof_error>::value<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::parse_error>::value<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::value<wchar_t const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::value<wchar_t const*, (void*)0>() const &
1607
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1608
    constexpr U&& value() && noexcept
1609
    {
1610
        SCN_EXPECT(has_value());
1611
        return std::move(this->get_value());
1612
    }
1613
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1614
    constexpr const U&& value() const&& noexcept
1615
    {
1616
        SCN_EXPECT(has_value());
1617
        return std::move(this->get_value());
1618
    }
1619
1620
    /// Get the expected value, if one is contained in *this
1621
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1622
    constexpr U& operator*() & noexcept
1623
190M
    {
1624
190M
        return value();
1625
190M
    }
long& scn::v3::expected<long, scn::v3::scan_error>::operator*<long, (void*)0>() &
Line
Count
Source
1623
91.4M
    {
1624
91.4M
        return value();
1625
91.4M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
4.09M
    {
1624
4.09M
        return value();
1625
4.09M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &
Line
Count
Source
1623
31.2M
    {
1624
31.2M
        return value();
1625
31.2M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
1.77M
    {
1624
1.77M
        return value();
1625
1.77M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
7.33M
    {
1624
7.33M
        return value();
1625
7.33M
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
1.37M
    {
1624
1.37M
        return value();
1625
1.37M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
150
    {
1624
150
        return value();
1625
150
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
char const*& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
3.28M
    {
1624
3.28M
        return value();
1625
3.28M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
3.29M
    {
1624
3.29M
        return value();
1625
3.29M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
810
    {
1624
810
        return value();
1625
810
    }
char const*& scn::v3::expected<char const*, scn::v3::scan_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
3.31M
    {
1624
3.31M
        return value();
1625
3.31M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
5.06k
    {
1624
5.06k
        return value();
1625
5.06k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
95.0k
    {
1624
95.0k
        return value();
1625
95.0k
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
3.74k
    {
1624
3.74k
        return value();
1625
3.74k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
38.4k
    {
1624
38.4k
        return value();
1625
38.4k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
7.83M
    {
1624
7.83M
        return value();
1625
7.83M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
15.6M
    {
1624
15.6M
        return value();
1625
15.6M
    }
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &
Line
Count
Source
1623
3.98M
    {
1624
3.98M
        return value();
1625
3.98M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &
Line
Count
Source
1623
15.6M
    {
1624
15.6M
        return value();
1625
15.6M
    }
1626
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1627
    constexpr const U& operator*() const& noexcept
1628
0
    {
1629
0
        return value();
1630
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() const &
1631
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1632
    constexpr U&& operator*() && noexcept
1633
350M
    {
1634
350M
        return std::move(value());
1635
350M
    }
std::__1::regex_constants::syntax_option_type&& scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::operator*<std::__1::regex_constants::syntax_option_type, (void*)0>() &&
Line
Count
Source
1633
9.52k
    {
1634
9.52k
        return std::move(value());
1635
9.52k
    }
Unexecuted instantiation: wchar_t&& scn::v3::expected<wchar_t, scn::v3::scan_error>::operator*<wchar_t, (void*)0>() &&
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
12.5M
    {
1634
12.5M
        return std::move(value());
1635
12.5M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
21.0M
    {
1634
21.0M
        return std::move(value());
1635
21.0M
    }
char const*&& scn::v3::expected<char const*, scn::v3::scan_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
19.6M
    {
1634
19.6M
        return std::move(value());
1635
19.6M
    }
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
79.2M
    {
1634
79.2M
        return std::move(value());
1635
79.2M
    }
char const*&& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
4.78M
    {
1634
4.78M
        return std::move(value());
1635
4.78M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, (void*)0>() &&
Line
Count
Source
1633
6.55M
    {
1634
6.55M
        return std::move(value());
1635
6.55M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
4.45M
    {
1634
4.45M
        return std::move(value());
1635
4.45M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
9.52M
    {
1634
9.52M
        return std::move(value());
1635
9.52M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
311k
    {
1634
311k
        return std::move(value());
1635
311k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
12.7M
    {
1634
12.7M
        return std::move(value());
1635
12.7M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
4.83k
    {
1634
4.83k
        return std::move(value());
1635
4.83k
    }
std::__1::pair<char const*, long>&& scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::operator*<std::__1::pair<char const*, long>, (void*)0>() &&
Line
Count
Source
1633
6.62M
    {
1634
6.62M
        return std::move(value());
1635
6.62M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
1.29k
    {
1634
1.29k
        return std::move(value());
1635
1.29k
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
1.83k
    {
1634
1.83k
        return std::move(value());
1635
1.83k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &&
Line
Count
Source
1633
982
    {
1634
982
        return std::move(value());
1635
982
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &&
Line
Count
Source
1633
982
    {
1634
982
        return std::move(value());
1635
982
    }
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
4.35k
    {
1634
4.35k
        return std::move(value());
1635
4.35k
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
4.47M
    {
1634
4.47M
        return std::move(value());
1635
4.47M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
309k
    {
1634
309k
        return std::move(value());
1635
309k
    }
long&& scn::v3::expected<long, scn::v3::scan_error>::operator*<long, (void*)0>() &&
Line
Count
Source
1633
9.01M
    {
1634
9.01M
        return std::move(value());
1635
9.01M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
2.28M
    {
1634
2.28M
        return std::move(value());
1635
2.28M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
316
    {
1634
316
        return std::move(value());
1635
316
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
2.30M
    {
1634
2.30M
        return std::move(value());
1635
2.30M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, (void*)0>() &&
Line
Count
Source
1633
16.1M
    {
1634
16.1M
        return std::move(value());
1635
16.1M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
620k
    {
1634
620k
        return std::move(value());
1635
620k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
894k
    {
1634
894k
        return std::move(value());
1635
894k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
351k
    {
1634
351k
        return std::move(value());
1635
351k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
351k
    {
1634
351k
        return std::move(value());
1635
351k
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
724
    {
1634
724
        return std::move(value());
1635
724
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
39.7M
    {
1634
39.7M
        return std::move(value());
1635
39.7M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
40.5M
    {
1634
40.5M
        return std::move(value());
1635
40.5M
    }
std::__1::pair<wchar_t const*, long>&& scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::operator*<std::__1::pair<wchar_t const*, long>, (void*)0>() &&
Line
Count
Source
1633
31.7M
    {
1634
31.7M
        return std::move(value());
1635
31.7M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
624k
    {
1634
624k
        return std::move(value());
1635
624k
    }
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
897k
    {
1634
897k
        return std::move(value());
1635
897k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
354k
    {
1634
354k
        return std::move(value());
1635
354k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
354k
    {
1634
354k
        return std::move(value());
1635
354k
    }
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
724
    {
1634
724
        return std::move(value());
1635
724
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
268k
    {
1634
268k
        return std::move(value());
1635
268k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
269k
    {
1634
269k
        return std::move(value());
1635
269k
    }
char const*&& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
1.98k
    {
1634
1.98k
        return std::move(value());
1635
1.98k
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
437k
    {
1634
437k
        return std::move(value());
1635
437k
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &&
Line
Count
Source
1633
390k
    {
1634
390k
        return std::move(value());
1635
390k
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
7.80M
    {
1634
7.80M
        return std::move(value());
1635
7.80M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &&
Line
Count
Source
1633
3.90M
    {
1634
3.90M
        return std::move(value());
1635
3.90M
    }
1636
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1637
    constexpr const U&& operator*() const&& noexcept
1638
    {
1639
        return std::move(value());
1640
    }
1641
1642
    constexpr value_type* operator->() noexcept
1643
67.8M
    {
1644
67.8M
        return &value();
1645
67.8M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
239k
    {
1644
239k
        return &value();
1645
239k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
77.5k
    {
1644
77.5k
        return &value();
1645
77.5k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
2.09k
    {
1644
2.09k
        return &value();
1645
2.09k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
878
    {
1644
878
        return &value();
1645
878
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
296k
    {
1644
296k
        return &value();
1645
296k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
283k
    {
1644
283k
        return &value();
1645
283k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
382k
    {
1644
382k
        return &value();
1645
382k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
324k
    {
1644
324k
        return &value();
1645
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
390k
    {
1644
390k
        return &value();
1645
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
328k
    {
1644
328k
        return &value();
1645
328k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
298k
    {
1644
298k
        return &value();
1645
298k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
285k
    {
1644
285k
        return &value();
1645
285k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
383k
    {
1644
383k
        return &value();
1645
383k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
326k
    {
1644
326k
        return &value();
1645
326k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
390k
    {
1644
390k
        return &value();
1645
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
330k
    {
1644
330k
        return &value();
1645
330k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
595
    {
1644
595
        return &value();
1645
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
500
    {
1644
500
        return &value();
1645
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
711
    {
1644
711
        return &value();
1645
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
564
    {
1644
564
        return &value();
1645
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
864
    {
1644
864
        return &value();
1645
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
694
    {
1644
694
        return &value();
1645
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
595
    {
1644
595
        return &value();
1645
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
500
    {
1644
500
        return &value();
1645
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
711
    {
1644
711
        return &value();
1645
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
564
    {
1644
564
        return &value();
1645
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
864
    {
1644
864
        return &value();
1645
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
694
    {
1644
694
        return &value();
1645
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
150k
    {
1644
150k
        return &value();
1645
150k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
150k
    {
1644
150k
        return &value();
1645
150k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
152k
    {
1644
152k
        return &value();
1645
152k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
19.5M
    {
1644
19.5M
        return &value();
1645
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
19.5M
    {
1644
19.5M
        return &value();
1645
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
19.5M
    {
1644
19.5M
        return &value();
1645
19.5M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
695k
    {
1644
695k
        return &value();
1645
695k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
756k
    {
1644
756k
        return &value();
1645
756k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
767k
    {
1644
767k
        return &value();
1645
767k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
690k
    {
1644
690k
        return &value();
1645
690k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
751k
    {
1644
751k
        return &value();
1645
751k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
761k
    {
1644
761k
        return &value();
1645
761k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
14.1k
    {
1644
14.1k
        return &value();
1645
14.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
14.2k
    {
1644
14.2k
        return &value();
1645
14.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
14.3k
    {
1644
14.3k
        return &value();
1645
14.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
14.0k
    {
1644
14.0k
        return &value();
1645
14.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
14.1k
    {
1644
14.1k
        return &value();
1645
14.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
14.3k
    {
1644
14.3k
        return &value();
1645
14.3k
    }
1646
    constexpr const value_type* operator->() const noexcept
1647
    {
1648
        return &value();
1649
    }
1650
1651
    /// Returns the expected value if *this contains one, otherwise
1652
    /// returns default_value
1653
    template <typename U,
1654
              typename = std::enable_if_t<std::is_copy_constructible_v<T> &&
1655
                                          std::is_convertible_v<U, T>>>
1656
    constexpr T value_or(U&& default_value) const& noexcept(
1657
        std::is_nothrow_copy_constructible_v<T> &&
1658
        std::is_nothrow_constructible_v<T, U&&>)
1659
    {
1660
        if (has_value()) {
1661
            return value();
1662
        }
1663
        return std::forward<U>(default_value);
1664
    }
1665
    template <typename U,
1666
              typename = std::enable_if_t<std::is_move_constructible_v<T> &&
1667
                                          std::is_convertible_v<U, T>>>
1668
    constexpr T value_or(U&& default_value) && noexcept(
1669
        std::is_nothrow_move_constructible_v<T> &&
1670
        std::is_nothrow_constructible_v<T, U&&>)
1671
    {
1672
        if (has_value()) {
1673
            return std::move(value());
1674
        }
1675
        return std::forward<U>(default_value);
1676
    }
1677
1678
    template <typename G,
1679
              typename = std::enable_if_t<std::is_copy_constructible_v<E> &&
1680
                                          std::is_convertible_v<G, E>>>
1681
    constexpr E error_or(G&& default_error) const& noexcept(
1682
        std::is_nothrow_copy_constructible_v<E> &&
1683
        std::is_nothrow_constructible_v<E, G&&>)
1684
    {
1685
        if (!has_value()) {
1686
            return error();
1687
        }
1688
        return std::forward<G>(default_error);
1689
    }
1690
    template <typename G,
1691
              typename = std::enable_if_t<std::is_move_constructible_v<E> &&
1692
                                          std::is_convertible_v<G, E>>>
1693
    constexpr E error_or(G&& default_error) && noexcept(
1694
        std::is_nothrow_move_constructible_v<E> &&
1695
        std::is_nothrow_constructible_v<E, G&&>)
1696
    {
1697
        if (!has_value()) {
1698
            return std::move(error());
1699
        }
1700
        return std::forward<G>(default_error);
1701
    }
1702
1703
    template <typename F>
1704
    constexpr auto and_then(F&& f) & noexcept(noexcept(
1705
        detail::and_then_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1706
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1707
    {
1708
        return detail::and_then_impl(*this, std::forward<F>(f));
1709
    }
1710
    template <typename F>
1711
    constexpr auto and_then(F&& f) const& noexcept(
1712
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&),
1713
                                       std::forward<F>(f))))
1714
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1715
    {
1716
        return detail::and_then_impl(*this, std::forward<F>(f));
1717
    }
1718
    template <typename F>
1719
    constexpr auto and_then(F&& f) && noexcept(noexcept(
1720
        detail::and_then_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1721
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1722
    {
1723
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1724
    }
1725
    template <typename F>
1726
    constexpr auto and_then(F&& f) const&& noexcept(
1727
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&&),
1728
                                       std::forward<F>(f))))
1729
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1730
    {
1731
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1732
    }
1733
1734
    template <typename F>
1735
    constexpr auto or_else(F&& f) & noexcept(noexcept(
1736
        detail::or_else_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1737
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1738
    {
1739
        return detail::or_else_impl(*this, std::forward<F>(f));
1740
    }
1741
    template <typename F>
1742
    constexpr auto or_else(F&& f) const& noexcept(noexcept(
1743
        detail::or_else_impl(SCN_DECLVAL(const expected&), std::forward<F>(f))))
1744
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1745
    {
1746
        return detail::or_else_impl(*this, std::forward<F>(f));
1747
    }
1748
    template <typename F>
1749
    constexpr auto or_else(F&& f) && noexcept(noexcept(
1750
        detail::or_else_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1751
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1752
    {
1753
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1754
    }
1755
    template <typename F>
1756
    constexpr auto or_else(F&& f) const&& noexcept(
1757
        noexcept(detail::or_else_impl(SCN_DECLVAL(const expected&&),
1758
                                      std::forward<F>(f))))
1759
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1760
    {
1761
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1762
    }
1763
1764
    template <typename F>
1765
    constexpr auto transform(
1766
        F&& f) & -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1767
    {
1768
        return detail::transform_impl(*this, std::forward<F>(f));
1769
    }
1770
    template <typename F>
1771
    constexpr auto transform(F&& f)
1772
        const& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1773
    {
1774
        return detail::transform_impl(*this, std::forward<F>(f));
1775
    }
1776
    template <typename F>
1777
    constexpr auto transform(
1778
        F&& f) && -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1779
    {
1780
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1781
    }
1782
    template <typename F>
1783
    constexpr auto transform(F&& f)
1784
        const&& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1785
    {
1786
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1787
    }
1788
1789
    template <typename F>
1790
    constexpr auto transform_error(
1791
        F&& f) & -> decltype(detail::transform_error_impl(*this,
1792
                                                          std::forward<F>(f)))
1793
5.29M
    {
1794
5.29M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
5.29M
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNR3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1793
2.22M
    {
1794
2.22M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
2.22M
    }
_ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1793
632
    {
1794
632
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
632
    }
_ZNR3scn2v38expectedIPKcNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES3_EUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1793
2.20M
    {
1794
2.20M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
2.20M
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNR3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1793
492k
    {
1794
492k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
492k
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
_ZNR3scn2v38expectedIPKwNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1793
372k
    {
1794
372k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
372k
    }
1796
    template <typename F>
1797
    constexpr auto transform_error(F&& f)
1798
        const& -> decltype(detail::transform_error_impl(*this,
1799
                                                        std::forward<F>(f)))
1800
    {
1801
        return detail::transform_error_impl(*this, std::forward<F>(f));
1802
    }
1803
    template <typename F>
1804
    constexpr auto transform_error(
1805
        F&& f) && -> decltype(detail::transform_error_impl(*this,
1806
                                                           std::forward<F>(f)))
1807
91.4M
    {
1808
91.4M
        return detail::transform_error_impl(std::move(*this),
1809
91.4M
                                            std::forward<F>(f));
1810
91.4M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
4.66M
    {
1808
4.66M
        return detail::transform_error_impl(std::move(*this),
1809
4.66M
                                            std::forward<F>(f));
1810
4.66M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
20.1M
    {
1808
20.1M
        return detail::transform_error_impl(std::move(*this),
1809
20.1M
                                            std::forward<F>(f));
1810
20.1M
    }
_ZNO3scn2v38expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
4.83M
    {
1808
4.83M
        return detail::transform_error_impl(std::move(*this),
1809
4.83M
                                            std::forward<F>(f));
1810
4.83M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
8.02M
    {
1808
8.02M
        return detail::transform_error_impl(std::move(*this),
1809
8.02M
                                            std::forward<F>(f));
1810
8.02M
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
2.16M
    {
1808
2.16M
        return detail::transform_error_impl(std::move(*this),
1809
2.16M
                                            std::forward<F>(f));
1810
2.16M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
1.64M
    {
1808
1.64M
        return detail::transform_error_impl(std::move(*this),
1809
1.64M
                                            std::forward<F>(f));
1810
1.64M
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
3.03k
    {
1808
3.03k
        return detail::transform_error_impl(std::move(*this),
1809
3.03k
                                            std::forward<F>(f));
1810
3.03k
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
1.94k
    {
1808
1.94k
        return detail::transform_error_impl(std::move(*this),
1809
1.94k
                                            std::forward<F>(f));
1810
1.94k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Line
Count
Source
1807
982
    {
1808
982
        return detail::transform_error_impl(std::move(*this),
1809
982
                                            std::forward<F>(f));
1810
982
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
970
    {
1808
970
        return detail::transform_error_impl(std::move(*this),
1809
970
                                            std::forward<F>(f));
1810
970
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
2.16M
    {
1808
2.16M
        return detail::transform_error_impl(std::move(*this),
1809
2.16M
                                            std::forward<F>(f));
1810
2.16M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
_ZNO3scn2v38expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Line
Count
Source
1807
2.28M
    {
1808
2.28M
        return detail::transform_error_impl(std::move(*this),
1809
2.28M
                                            std::forward<F>(f));
1810
2.28M
    }
_ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Line
Count
Source
1807
316
    {
1808
316
        return detail::transform_error_impl(std::move(*this),
1809
316
                                            std::forward<F>(f));
1810
316
    }
_ZNO3scn2v38expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
2.30M
    {
1808
2.30M
        return detail::transform_error_impl(std::move(*this),
1809
2.30M
                                            std::forward<F>(f));
1810
2.30M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
966k
    {
1808
966k
        return detail::transform_error_impl(std::move(*this),
1809
966k
                                            std::forward<F>(f));
1810
966k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
351k
    {
1808
351k
        return detail::transform_error_impl(std::move(*this),
1809
351k
                                            std::forward<F>(f));
1810
351k
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
303k
    {
1808
303k
        return detail::transform_error_impl(std::move(*this),
1809
303k
                                            std::forward<F>(f));
1810
303k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
_ZNO3scn2v38expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
39.6M
    {
1808
39.6M
        return detail::transform_error_impl(std::move(*this),
1809
39.6M
                                            std::forward<F>(f));
1810
39.6M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
_ZNO3scn2v38expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
973k
    {
1808
973k
        return detail::transform_error_impl(std::move(*this),
1809
973k
                                            std::forward<F>(f));
1810
973k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
354k
    {
1808
354k
        return detail::transform_error_impl(std::move(*this),
1809
354k
                                            std::forward<F>(f));
1810
354k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
_ZNO3scn2v38expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Line
Count
Source
1807
268k
    {
1808
268k
        return detail::transform_error_impl(std::move(*this),
1809
268k
                                            std::forward<F>(f));
1810
268k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
_ZNO3scn2v38expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
269k
    {
1808
269k
        return detail::transform_error_impl(std::move(*this),
1809
269k
                                            std::forward<F>(f));
1810
269k
    }
_ZNO3scn2v38expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
2.09k
    {
1808
2.09k
        return detail::transform_error_impl(std::move(*this),
1809
2.09k
                                            std::forward<F>(f));
1810
2.09k
    }
1811
    template <typename F>
1812
    constexpr auto transform_error(F&& f)
1813
        const&& -> decltype(detail::transform_error_impl(*this,
1814
                                                         std::forward<F>(f)))
1815
    {
1816
        return detail::transform_error_impl(std::move(*this),
1817
                                            std::forward<F>(f));
1818
    }
1819
1820
private:
1821
    template <typename... Args>
1822
    void emplace_impl(Args&&... args) noexcept(
1823
        std::is_nothrow_constructible_v<T, Args&&...>)
1824
    {
1825
        if (this->has_value()) {
1826
            this->destroy_value();
1827
            this->construct(std::forward<Args>(args)...);
1828
        }
1829
        else {
1830
#if SCN_HAS_EXCEPTIONS
1831
            if constexpr (std::is_nothrow_constructible_v<T, Args&&...>) {
1832
                auto tmp = std::move(error());
1833
                this->destroy_unexpected();
1834
1835
                try {
1836
                    this->construct(std::forward<Args>(args)...);
1837
                }
1838
                catch (...) {
1839
                    this->construct_unexpected(std::move(tmp));
1840
                    throw;
1841
                }
1842
            }
1843
            else {
1844
                this->construct(std::forward<Args>(args)...);
1845
            }
1846
#else
1847
            this->destroy_unexpected();
1848
            this->construct(std::forward<Args>(args)...);
1849
#endif
1850
        }
1851
    }
1852
1853
    template <typename Value>
1854
    void assign_value(Value&& val) noexcept(
1855
        std::is_nothrow_constructible_v<detail::remove_cvref_t<Value>,
1856
                                        Value&&> &&
1857
        std::is_nothrow_assignable_v<T, Value&&>)
1858
    {
1859
        if (has_value()) {
1860
            this->get_value() = std::forward<Value>(val);
1861
            return;
1862
        }
1863
1864
#if SCN_HAS_EXCEPTIONS
1865
        if constexpr (std::is_nothrow_constructible_v<T, Value&&>) {
1866
            this->destroy_unexpected();
1867
            this->construct(std::forward<Value>(val));
1868
        }
1869
        else {
1870
            auto tmp = std::move(this->get_unexpected());
1871
            this->destroy_unexpected();
1872
1873
            try {
1874
                this->construct(std::forward<Value>(val));
1875
            }
1876
            catch (...) {
1877
                this->construct_unexpected(std::move(tmp));
1878
            }
1879
        }
1880
#else
1881
        this->destroy_unexpected();
1882
        this->construct(std::forward<Value>(val));
1883
#endif
1884
    }
1885
1886
    template <typename Unexpected>
1887
    void assign_unexpected(Unexpected&& unex) noexcept(
1888
        std::is_nothrow_constructible_v<E, Unexpected&&> &&
1889
        std::is_nothrow_assignable_v<E, Unexpected&&>)
1890
    {
1891
        if (!has_value()) {
1892
            this->get_unexpected() = std::forward<Unexpected>(unex);
1893
            return;
1894
        }
1895
1896
        this->destroy_value();
1897
        this->construct_unexpected(std::forward<Unexpected>(unex));
1898
    }
1899
};
1900
1901
/////////////////////////////////////////////////////////////////
1902
// <ranges> implementation
1903
/////////////////////////////////////////////////////////////////
1904
1905
// The following is a very minimal <ranges> implementation,
1906
// which is a heavily stripped-down and adapted version of NanoRange:
1907
//   https://github.com/tcbrindle/NanoRange
1908
// NanoRange is provided under the Boost license.
1909
//   Copyright (c) 2018 Tristan Brindle (tcbrindle at gmail dot com)
1910
1911
namespace ranges {
1912
1913
namespace detail {
1914
using namespace scn::detail;
1915
1916
template <typename T>
1917
constexpr auto decay_copy(T&& t) noexcept(
1918
    noexcept(static_cast<std::decay_t<T>>(SCN_FWD(t)))) -> std::decay_t<T>
1919
819M
{
1920
819M
    return SCN_FWD(t);
1921
819M
}
_ZN3scn2v36ranges6detail10decay_copyIPKcEEu7__decayIT_EOS6_
Line
Count
Source
1919
41.7M
{
1920
41.7M
    return SCN_FWD(t);
1921
41.7M
}
_ZN3scn2v36ranges6detail10decay_copyIPKwEEu7__decayIT_EOS6_
Line
Count
Source
1919
237M
{
1920
237M
    return SCN_FWD(t);
1921
237M
}
_ZN3scn2v36ranges6detail10decay_copyImEEu7__decayIT_EOS4_
Line
Count
Source
1919
49.8M
{
1920
49.8M
    return SCN_FWD(t);
1921
49.8M
}
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
_ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EEEEu7__decayIT_EOSA_
Line
Count
Source
1919
3.91k
{
1920
3.91k
    return SCN_FWD(t);
1921
3.91k
}
_ZN3scn2v36ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEEu7__decayIT_EOS8_
Line
Count
Source
1919
1.59M
{
1920
1.59M
    return SCN_FWD(t);
1921
1.59M
}
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EEEEu7__decayIT_EOSA_
_ZN3scn2v36ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEEu7__decayIT_EOS8_
Line
Count
Source
1919
225k
{
1920
225k
    return SCN_FWD(t);
1921
225k
}
_ZN3scn2v36ranges6detail10decay_copyINSt3__116__deque_iteratorIcPKcRS6_PKS7_lLl4096EEEEEu7__decayIT_EOSC_
Line
Count
Source
1919
66.9M
{
1920
66.9M
    return SCN_FWD(t);
1921
66.9M
}
_ZN3scn2v36ranges6detail10decay_copyINSt3__116__deque_iteratorIwPKwRS6_PKS7_lLl1024EEEEEu7__decayIT_EOSC_
Line
Count
Source
1919
422M
{
1920
422M
    return SCN_FWD(t);
1921
422M
}
1922
1923
template <bool>
1924
struct conditional {
1925
    template <typename T, typename>
1926
    using type = T;
1927
};
1928
1929
template <>
1930
struct conditional<false> {
1931
    template <typename, typename U>
1932
    using type = U;
1933
};
1934
1935
template <bool B, typename T, typename U>
1936
using conditional_t = typename conditional<B>::template type<T, U>;
1937
1938
template <template <class...> class AliasT, typename... Args>
1939
auto exists_helper(long) -> std::false_type;
1940
1941
template <template <class...> class AliasT,
1942
          typename... Args,
1943
          typename = AliasT<Args...>>
1944
auto exists_helper(int) -> std::true_type;
1945
1946
template <template <class...> class AliasT, typename... Args>
1947
inline constexpr bool exists_v =
1948
    decltype(exists_helper<AliasT, Args...>(0))::value;
1949
1950
template <typename, typename...>
1951
auto test_requires_fn(long) -> std::false_type;
1952
1953
template <typename R,
1954
          typename... Args,
1955
          typename = decltype(&R::template requires_<Args...>)>
1956
auto test_requires_fn(int) -> std::true_type;
1957
1958
template <typename R, typename... Args>
1959
inline constexpr bool requires_ =
1960
    decltype(test_requires_fn<R, Args...>(0))::value;
1961
1962
template <bool Expr>
1963
using requires_expr = std::enable_if_t<Expr, int>;
1964
}  // namespace detail
1965
1966
template <typename>
1967
inline constexpr bool enable_borrowed_range = false;
1968
1969
namespace detail {
1970
template <typename T>
1971
inline constexpr bool boolean_testable_impl = std::is_convertible_v<T, bool>;
1972
1973
struct boolean_testable_concept {
1974
    template <typename T>
1975
    auto requires_(T&& t)
1976
        -> requires_expr<boolean_testable_impl<decltype(!std::forward<T>(t))>>;
1977
};
1978
1979
template <typename T>
1980
inline constexpr bool boolean_testable =
1981
    boolean_testable_impl<T> && detail::requires_<boolean_testable_concept, T>;
1982
}  // namespace detail
1983
1984
namespace detail {
1985
struct weakly_equality_comparable_with_concept {
1986
    template <typename T, typename U>
1987
    auto requires_(const std::remove_reference_t<T>& t,
1988
                   const std::remove_reference_t<U>& u)
1989
        -> decltype(requires_expr<boolean_testable<decltype(t == u)>>{},
1990
                    requires_expr<boolean_testable<decltype(t != u)>>{},
1991
                    requires_expr<boolean_testable<decltype(u == t)>>{},
1992
                    requires_expr<boolean_testable<decltype(u != t)>>{});
1993
};
1994
1995
template <typename T, typename U>
1996
inline constexpr bool weakly_equality_comparable_with =
1997
    requires_<weakly_equality_comparable_with_concept, T, U>;
1998
}  // namespace detail
1999
2000
template <typename T>
2001
inline constexpr bool equality_comparable =
2002
    detail::weakly_equality_comparable_with<T, T>;
2003
2004
namespace detail {
2005
struct equality_comparable_with_concept {
2006
    template <typename, typename>
2007
    static auto test(long) -> std::false_type;
2008
2009
    template <typename T, typename U>
2010
    static auto test(int)
2011
        -> std::enable_if_t<equality_comparable<T> && equality_comparable<U> &&
2012
#if 0
2013
            common_reference_with<const std::remove_reference_t<T>&,
2014
                                  const std::remove_reference_t<U>&> &&
2015
            equality_comparable<
2016
                common_reference_t<const std::remove_reference_t<T>&,
2017
                                   const std::remove_reference_t<U>&>> &&
2018
#endif
2019
                                weakly_equality_comparable_with<T, U>,
2020
                            std::true_type>;
2021
};
2022
}  // namespace detail
2023
2024
template <typename T, typename U>
2025
inline constexpr bool equality_comparable_with =
2026
    decltype(detail::equality_comparable_with_concept::test<T, U>(0))::value;
2027
2028
namespace detail {
2029
struct partially_ordered_with_concept {
2030
    template <typename T, typename U>
2031
    auto requires_(const std::remove_reference_t<T>& t,
2032
                   const std::remove_reference_t<U>& u)
2033
        -> decltype(requires_expr<boolean_testable<decltype(t < u)>>{},
2034
                    requires_expr<boolean_testable<decltype(t > u)>>{},
2035
                    requires_expr<boolean_testable<decltype(t <= u)>>{},
2036
                    requires_expr<boolean_testable<decltype(t >= u)>>{},
2037
                    requires_expr<boolean_testable<decltype(u < t)>>{},
2038
                    requires_expr<boolean_testable<decltype(u > t)>>{},
2039
                    requires_expr<boolean_testable<decltype(u <= t)>>{},
2040
                    requires_expr<boolean_testable<decltype(u >= t)>>{});
2041
};
2042
2043
template <typename T, typename U>
2044
inline constexpr bool partially_ordered_with =
2045
    detail::requires_<detail::partially_ordered_with_concept, T, U>;
2046
}  // namespace detail
2047
2048
template <typename T>
2049
inline constexpr bool totally_ordered =
2050
    equality_comparable<T> && detail::partially_ordered_with<T, T>;
2051
2052
namespace detail {
2053
struct totally_ordered_with_concept {
2054
    template <typename, typename>
2055
    static auto test(long) -> std::false_type;
2056
2057
    template <typename T, typename U>
2058
    static auto test(int)
2059
        -> std::enable_if_t<totally_ordered<T> && totally_ordered<U> &&
2060
                                equality_comparable_with<T, U> &&
2061
#if 0
2062
                                totally_ordered<common_reference_t<
2063
                                    const std::remove_reference_t<T>&,
2064
                                    const std::remove_reference_t<U>&>> &&
2065
#endif
2066
                                partially_ordered_with<T, U>,
2067
                            std::true_type>;
2068
};
2069
}  // namespace detail
2070
2071
template <typename T, typename U>
2072
inline constexpr bool totally_ordered_with =
2073
    decltype(detail::totally_ordered_with_concept::test<T, U>(0))::value;
2074
2075
namespace detail {
2076
struct movable_concept {
2077
    template <typename T>
2078
    static auto test(long) -> std::false_type;
2079
2080
    template <typename T>
2081
    static auto test(int) -> std::enable_if_t<
2082
        std::is_object_v<T> && std::is_move_constructible_v<T> &&
2083
            std::is_move_assignable_v<T> && std::is_swappable_v<T>,
2084
        std::true_type>;
2085
};
2086
}  // namespace detail
2087
2088
template <typename T>
2089
inline constexpr bool movable =
2090
    decltype(detail::movable_concept::test<T>(0))::value;
2091
2092
namespace detail {
2093
struct copyable_concept {
2094
    template <typename>
2095
    static auto test(long) -> std::false_type;
2096
2097
    template <typename T>
2098
    static auto test(int)
2099
        -> std::enable_if_t<std::is_copy_constructible_v<T> && movable<T> &&
2100
                                std::is_copy_assignable_v<T>,
2101
                            std::true_type>;
2102
};
2103
}  // namespace detail
2104
2105
template <typename T>
2106
inline constexpr bool copyable =
2107
    decltype(detail::copyable_concept::test<T>(0))::value;
2108
2109
template <typename T>
2110
inline constexpr bool semiregular =
2111
    copyable<T> && std::is_default_constructible_v<T>;
2112
2113
template <typename T>
2114
inline constexpr bool regular = semiregular<T> && equality_comparable<T>;
2115
2116
template <typename>
2117
struct incrementable_traits;
2118
2119
namespace detail {
2120
struct empty {};
2121
2122
template <typename T>
2123
struct with_difference_type {
2124
    using difference_type = T;
2125
};
2126
2127
template <typename, typename = void>
2128
struct incrementable_traits_helper {};
2129
2130
// Workaround for GCC silliness: void* has no difference_type
2131
// FIXME: This is required to stop WeaklyIncrementable<void*> being a hard
2132
// error Can we formulate the concept differently to avoid the need for this
2133
// hack?
2134
template <>
2135
struct incrementable_traits_helper<void*> {};
2136
2137
template <typename T>
2138
struct incrementable_traits_helper<T*>
2139
    : detail::conditional_t<std::is_object_v<T>,
2140
                            with_difference_type<std::ptrdiff_t>,
2141
                            empty> {};
2142
2143
template <class I>
2144
struct incrementable_traits_helper<const I>
2145
    : incrementable_traits<std::decay_t<I>> {};
2146
2147
template <typename, typename = void>
2148
struct has_member_difference_type : std::false_type {};
2149
2150
template <typename T>
2151
struct has_member_difference_type<T, std::void_t<typename T::difference_type>>
2152
    : std::true_type {};
2153
2154
template <typename T>
2155
constexpr bool has_member_difference_type_v =
2156
    has_member_difference_type<T>::value;
2157
2158
template <typename T>
2159
struct incrementable_traits_helper<
2160
    T,
2161
    std::enable_if_t<has_member_difference_type_v<T>>> {
2162
    using difference_type = typename T::difference_type;
2163
};
2164
2165
template <typename T, typename = void>
2166
struct subtraction_result_type {
2167
    using type = void;
2168
};
2169
template <typename T>
2170
struct subtraction_result_type<
2171
    T,
2172
    std::void_t<decltype(std::declval<const T&>() -
2173
                         std::declval<const T&>())>> {
2174
    using type = decltype(std::declval<const T&>() - std::declval<const T&>());
2175
};
2176
2177
template <typename T>
2178
inline constexpr bool enable_incrtraits_subtractable =
2179
    !std::is_pointer_v<T> && !has_member_difference_type_v<T> &&
2180
    std::is_integral_v<typename subtraction_result_type<T>::type>;
2181
2182
template <typename T>
2183
struct incrementable_traits_helper<
2184
    T,
2185
    std::enable_if_t<enable_incrtraits_subtractable<T>>>
2186
    : with_difference_type<
2187
          std::make_signed_t<typename subtraction_result_type<T>::type>> {};
2188
}  // namespace detail
2189
2190
template <typename T>
2191
struct incrementable_traits : detail::incrementable_traits_helper<T> {};
2192
2193
template <typename T>
2194
using iter_difference_t = typename incrementable_traits<T>::difference_type;
2195
2196
template <typename>
2197
struct readable_traits;
2198
2199
namespace detail {
2200
template <typename T>
2201
struct with_value_type {
2202
    using value_type = T;
2203
};
2204
2205
template <typename, typename = void>
2206
struct readable_traits_helper {};
2207
2208
template <typename T>
2209
struct readable_traits_helper<T*>
2210
    : detail::conditional_t<std::is_object_v<T>,
2211
                            with_value_type<std::remove_cv_t<T>>,
2212
                            empty> {};
2213
2214
template <typename I>
2215
struct readable_traits_helper<I, std::enable_if_t<std::is_array_v<I>>>
2216
    : readable_traits<std::decay_t<I>> {};
2217
2218
template <typename I>
2219
struct readable_traits_helper<const I, std::enable_if_t<!std::is_array_v<I>>>
2220
    : readable_traits<std::decay_t<I>> {};
2221
2222
template <typename T, typename V = typename T::value_type>
2223
struct member_value_type
2224
    : detail::conditional_t<std::is_object_v<V>, with_value_type<V>, empty> {};
2225
2226
template <typename T, typename E = typename T::element_type>
2227
struct member_element_type
2228
    : detail::conditional_t<std::is_object_v<E>,
2229
                            with_value_type<std::remove_cv_t<E>>,
2230
                            empty> {};
2231
2232
template <typename T>
2233
using member_value_type_t = typename T::value_type;
2234
2235
template <typename T>
2236
constexpr bool has_member_value_type_v = exists_v<member_value_type_t, T>;
2237
2238
template <typename T>
2239
using member_element_type_t = typename T::element_type;
2240
2241
template <typename T>
2242
constexpr bool has_member_element_type_v = exists_v<member_element_type_t, T>;
2243
2244
template <typename T>
2245
struct readable_traits_helper<T,
2246
                              std::enable_if_t<has_member_value_type_v<T> &&
2247
                                               !has_member_element_type_v<T>>>
2248
    : member_value_type<T> {};
2249
2250
template <typename T>
2251
struct readable_traits_helper<T,
2252
                              std::enable_if_t<has_member_element_type_v<T> &&
2253
                                               !has_member_value_type_v<T>>>
2254
    : member_element_type<T> {};
2255
2256
// A type which has both value_type and element_type members must specialise
2257
// readable_traits to tell us which one to prefer -- see
2258
// https://github.com/ericniebler/stl2/issues/562
2259
template <typename T>
2260
struct readable_traits_helper<T,
2261
                              std::enable_if_t<has_member_element_type_v<T> &&
2262
                                               has_member_value_type_v<T>>> {};
2263
}  // namespace detail
2264
2265
template <typename T>
2266
struct readable_traits : detail::readable_traits_helper<T> {};
2267
2268
template <typename T>
2269
using iter_value_t = typename readable_traits<T>::value_type;
2270
2271
namespace detail {
2272
template <typename T>
2273
using with_reference = T&;
2274
2275
struct can_reference_concept {
2276
    template <typename T>
2277
    auto requires_() -> with_reference<T>;
2278
};
2279
2280
template <typename T>
2281
inline constexpr bool can_reference =
2282
    detail::requires_<can_reference_concept, T>;
2283
2284
struct dereferencable_concept {
2285
    template <typename T>
2286
    auto requires_(T& t)
2287
        -> decltype(requires_expr<can_reference<decltype(*t)>>{});
2288
};
2289
2290
template <typename T>
2291
inline constexpr bool dereferenceable = requires_<dereferencable_concept, T>;
2292
2293
// GCC and Clang allow dereferencing void* as an extension.
2294
// Let's kill that off now.
2295
2296
template <>
2297
inline constexpr bool dereferenceable<void*> = false;
2298
}  // namespace detail
2299
2300
using std::bidirectional_iterator_tag;
2301
using std::forward_iterator_tag;
2302
using std::input_iterator_tag;
2303
using std::output_iterator_tag;
2304
using std::random_access_iterator_tag;
2305
2306
#if SCN_STD >= SCN_STD_20 && defined(__cpp_lib_ranges) && \
2307
    __cpp_lib_ranges >= 201911L
2308
using std::contiguous_iterator_tag;
2309
#else
2310
struct contiguous_iterator_tag : random_access_iterator_tag {};
2311
#endif
2312
2313
template <typename T>
2314
struct iterator_category;
2315
2316
namespace detail {
2317
template <typename T, typename = void>
2318
struct iterator_category_ {};
2319
template <typename T>
2320
struct iterator_category_<T*>
2321
    : std::enable_if<std::is_object_v<T>, contiguous_iterator_tag> {};
2322
template <typename T>
2323
struct iterator_category_<const T> : iterator_category<T> {};
2324
template <typename T>
2325
struct iterator_category_<T, std::void_t<typename T::iterator_category>> {
2326
    using type = typename T::iterator_category;
2327
};
2328
}  // namespace detail
2329
2330
template <typename T>
2331
struct iterator_category : detail::iterator_category_<T> {};
2332
template <typename T>
2333
using iterator_category_t = typename iterator_category<T>::type;
2334
2335
namespace detail {
2336
2337
template <typename T, typename = void>
2338
struct legacy_iterator_category : iterator_category<T> {};
2339
2340
template <typename T>
2341
struct legacy_iterator_category<
2342
    T,
2343
    std::enable_if_t<
2344
        std::is_same_v<iterator_category_t<T>, contiguous_iterator_tag>>> {
2345
    using type = random_access_iterator_tag;
2346
};
2347
2348
template <typename T>
2349
using legacy_iterator_category_t = typename legacy_iterator_category<T>::type;
2350
2351
}  // namespace detail
2352
2353
template <typename T>
2354
using iter_reference_t =
2355
    std::enable_if_t<detail::dereferenceable<T>, decltype(*std::declval<T&>())>;
2356
2357
namespace detail {
2358
2359
struct readable_concept {
2360
    template <typename In>
2361
    auto requires_() -> decltype(std::declval<iter_value_t<In>>(),
2362
                                 std::declval<iter_reference_t<In>>());
2363
    // std::declval<iter_rvalue_reference_t<In>>());
2364
2365
    template <typename>
2366
    static auto test(long) -> std::false_type;
2367
2368
    template <typename In>
2369
    static auto test(int)
2370
        -> std::enable_if_t<detail::requires_<readable_concept, In>,
2371
#if 0
2372
            common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&> &&
2373
            common_reference_with<iter_reference_t<In>&&,
2374
                                  iter_rvalue_reference_t<In>&&> &&
2375
            common_reference_with<iter_rvalue_reference_t<In>&&,
2376
                                  const iter_value_t<In>&>,
2377
#endif
2378
                            std::true_type>;
2379
};
2380
2381
}  // namespace detail
2382
2383
template <typename In>
2384
inline constexpr bool readable =
2385
    decltype(detail::readable_concept::test<In>(0))::value;
2386
2387
namespace detail {
2388
2389
struct writable_concept {
2390
    template <typename Out, typename T>
2391
    auto requires_(Out&& o, T&& t)
2392
        -> decltype(*o = std::forward<T>(t),
2393
                    *std::forward<Out>(o) = std::forward<T>(t),
2394
                    const_cast<const iter_reference_t<Out>&&>(*o) =
2395
                        std::forward<T>(t),
2396
                    const_cast<const iter_reference_t<Out>&&>(
2397
                        *std::forward<Out>(o)) = std::forward<T>(t));
2398
};
2399
2400
}  // namespace detail
2401
2402
template <typename Out, typename T>
2403
inline constexpr bool writable =
2404
    detail::requires_<detail::writable_concept, Out, T>;
2405
2406
namespace detail {
2407
2408
template <typename T>
2409
inline constexpr bool is_integer_like = std::is_integral_v<T>;
2410
2411
template <typename T>
2412
inline constexpr bool is_signed_integer_like =
2413
    std::is_integral_v<T> && std::is_signed_v<T>;
2414
2415
struct weakly_incrementable_concept {
2416
    template <typename I>
2417
    auto requires_(I i)
2418
        -> decltype(std::declval<iter_difference_t<I>>(),
2419
                    requires_expr<
2420
                        is_signed_integer_like<iter_difference_t<I>>>{},
2421
                    requires_expr<std::is_same_v<decltype(++i), I&>>{},
2422
                    i++);
2423
};
2424
2425
}  // namespace detail
2426
2427
template <typename I>
2428
inline constexpr bool weakly_incrementable =
2429
    std::is_default_constructible_v<I> && movable<I> &&
2430
    detail::requires_<detail::weakly_incrementable_concept, I>;
2431
2432
namespace detail {
2433
2434
struct incrementable_concept {
2435
    template <typename I>
2436
    auto requires_(I i)
2437
        -> decltype(requires_expr<std::is_same_v<decltype(i++), I>>{});
2438
};
2439
2440
}  // namespace detail
2441
2442
template <typename I>
2443
inline constexpr bool incrementable =
2444
    regular<I> && weakly_incrementable<I> &&
2445
    detail::requires_<detail::incrementable_concept, I>;
2446
2447
namespace detail {
2448
2449
struct input_or_output_iterator_concept {
2450
    template <typename I>
2451
    auto requires_(I i)
2452
        -> decltype(requires_expr<can_reference<decltype(*i)>>{});
2453
};
2454
2455
}  // namespace detail
2456
2457
template <typename I>
2458
inline constexpr bool input_or_output_iterator =
2459
    detail::requires_<detail::input_or_output_iterator_concept, I> &&
2460
    weakly_incrementable<I>;
2461
2462
template <typename S, typename I>
2463
inline constexpr bool sentinel_for =
2464
    semiregular<S> && input_or_output_iterator<I> &&
2465
    detail::weakly_equality_comparable_with<S, I>;
2466
2467
template <typename S, typename I>
2468
inline constexpr bool disable_sized_sentinel = false;
2469
2470
namespace detail {
2471
2472
struct sized_sentinel_for_concept {
2473
    template <typename S, typename I>
2474
    auto requires_(const S& s, const I& i)
2475
        -> decltype(requires_expr<std::is_same_v<decltype(s - i),
2476
                                                 iter_difference_t<I>>>{},
2477
                    requires_expr<std::is_same_v<decltype(i - s),
2478
                                                 iter_difference_t<I>>>{});
2479
};
2480
2481
}  // namespace detail
2482
2483
template <typename S, typename I>
2484
inline constexpr bool sized_sentinel_for =
2485
    sentinel_for<S, I> &&
2486
    !disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>> &&
2487
    detail::requires_<detail::sized_sentinel_for_concept, S, I>;
2488
2489
// This is a hack, but I'm fed up with my tests breaking because GCC
2490
// has a silly extension
2491
template <typename S>
2492
inline constexpr bool sized_sentinel_for<S, void*> = false;
2493
2494
template <typename I>
2495
inline constexpr bool sized_sentinel_for<void*, I> = false;
2496
2497
template <>
2498
inline constexpr bool sized_sentinel_for<void*, void*> = false;
2499
2500
namespace detail {
2501
2502
// FIXME: Use ITER_CONCEPT, not iterator_category_t
2503
struct input_iterator_concept {
2504
    template <typename I>
2505
    auto requires_() -> iterator_category_t<I>;
2506
2507
    template <typename>
2508
    static auto test(long) -> std::false_type;
2509
2510
    template <typename I>
2511
    static auto test(int) -> std::enable_if_t<
2512
        input_or_output_iterator<I> && readable<I> &&
2513
            detail::requires_<input_iterator_concept, I> &&
2514
            std::is_base_of_v<input_iterator_tag, iterator_category_t<I>>,
2515
        std::true_type>;
2516
};
2517
2518
}  // namespace detail
2519
2520
template <typename I>
2521
inline constexpr bool input_iterator =
2522
    decltype(detail::input_iterator_concept::test<I>(0))::value;
2523
2524
namespace detail {
2525
2526
struct output_iterator_concept {
2527
    template <typename I, typename T>
2528
    auto requires_(I i, T&& t) -> decltype(*i++ = std::forward<T>(t));
2529
};
2530
2531
}  // namespace detail
2532
2533
template <typename I, typename T>
2534
inline constexpr bool output_iterator =
2535
    input_or_output_iterator<I> && writable<I, T> &&
2536
    detail::requires_<detail::output_iterator_concept, I, T>;
2537
2538
namespace detail {
2539
2540
struct forward_iterator_concept {
2541
    template <typename>
2542
    static auto test(long) -> std::false_type;
2543
2544
    template <typename I>
2545
    static auto test(int) -> std::enable_if_t<
2546
        input_iterator<I> &&
2547
            std::is_base_of_v<forward_iterator_tag, iterator_category_t<I>> &&
2548
            incrementable<I> && sentinel_for<I, I>,
2549
        std::true_type>;
2550
};
2551
2552
}  // namespace detail
2553
2554
template <typename I>
2555
inline constexpr bool forward_iterator =
2556
    decltype(detail::forward_iterator_concept::test<I>(0))::value;
2557
2558
namespace detail {
2559
2560
struct bidirectional_iterator_concept {
2561
    template <typename I>
2562
    auto requires_(I i)
2563
        -> decltype(requires_expr<std::is_same_v<decltype(--i), I&>>{},
2564
                    requires_expr<std::is_same_v<decltype(i--), I>>{});
2565
2566
    template <typename>
2567
    static auto test(long) -> std::false_type;
2568
2569
    template <typename I>
2570
    static auto test(int) -> std::enable_if_t<
2571
        forward_iterator<I> &&
2572
            std::is_base_of_v<bidirectional_iterator_tag,
2573
                              iterator_category_t<I>> &&
2574
            detail::requires_<bidirectional_iterator_concept, I>,
2575
        std::true_type>;
2576
};
2577
2578
}  // namespace detail
2579
2580
template <typename I>
2581
inline constexpr bool bidirectional_iterator =
2582
    decltype(detail::bidirectional_iterator_concept::test<I>(0))::value;
2583
2584
namespace detail {
2585
2586
struct random_access_iterator_concept {
2587
    template <typename>
2588
    static auto test(long) -> std::false_type;
2589
2590
    template <typename I>
2591
    static auto test(int) -> std::enable_if_t<
2592
        bidirectional_iterator<I> &&
2593
            std::is_base_of_v<random_access_iterator_tag,
2594
                              iterator_category_t<I>> &&
2595
            totally_ordered<I> && sized_sentinel_for<I, I> &&
2596
            detail::requires_<random_access_iterator_concept, I>,
2597
        std::true_type>;
2598
2599
    template <typename I>
2600
    auto requires_(I i, const I j, const iter_difference_t<I> n)
2601
        -> decltype(requires_expr<std::is_same_v<decltype(i += n), I&>>{},
2602
                    requires_expr<std::is_same_v<decltype(j + n), I>>{},
2603
#ifndef _MSC_VER
2604
                    requires_expr<std::is_same_v<decltype(n + j),
2605
                                                 I>>{},  // FIXME: MSVC doesn't
2606
                                                         // like this when I =
2607
                                                         // int*
2608
#endif
2609
                    requires_expr<std::is_same_v<decltype(i -= n), I&>>{},
2610
                    requires_expr<std::is_same_v<decltype(j - n), I>>{},
2611
                    requires_expr<
2612
                        std::is_same_v<decltype(j[n]), iter_reference_t<I>>>{});
2613
};
2614
2615
}  // namespace detail
2616
2617
template <typename I>
2618
inline constexpr bool random_access_iterator =
2619
    decltype(detail::random_access_iterator_concept::test<I>(0))::value;
2620
2621
namespace detail {
2622
2623
struct contiguous_iterator_concept {
2624
    template <typename>
2625
    static auto test(long) -> std::false_type;
2626
2627
    template <typename I>
2628
    static auto test(int) -> std::enable_if_t<
2629
        random_access_iterator<I> &&
2630
            /*std::is_base_of_v<contiguous_iterator_tag,
2631
                              iterator_category_t<I>> &&*/
2632
            detail::can_make_address_from_iterator<I> &&
2633
            std::is_lvalue_reference_v<iter_reference_t<I>> &&
2634
            std::is_same_v<iter_value_t<I>,
2635
                           remove_cvref_t<iter_reference_t<I>>>,
2636
        std::true_type>;
2637
};
2638
2639
}  // namespace detail
2640
2641
template <typename I>
2642
inline constexpr bool contiguous_iterator =
2643
    decltype(detail::contiguous_iterator_concept::test<I>(0))::value;
2644
2645
namespace detail::begin_ {
2646
2647
template <typename T>
2648
void begin(T&) = delete;
2649
template <typename T>
2650
void begin(const T&) = delete;
2651
2652
struct fn {
2653
private:
2654
    template <typename T,
2655
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2656
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2657
                  nullptr>
2658
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2659
2660
    template <typename T,
2661
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2662
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2663
        -> decltype(t + 0)
2664
    {
2665
        static_assert(ranges::input_or_output_iterator<decltype(t + 0)>);
2666
        return t + 0;
2667
    }
2668
2669
    template <typename T>
2670
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2671
        noexcept(decay_copy(SCN_FWD(t).begin())))
2672
        -> std::enable_if_t<
2673
            input_or_output_iterator<decltype(decay_copy(SCN_FWD(t).begin()))>,
2674
            decltype(decay_copy(SCN_FWD(t).begin()))>
2675
266M
    {
2676
266M
        return decay_copy(t.begin());
2677
266M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
387k
    {
2676
387k
        return decay_copy(t.begin());
2677
387k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
769k
    {
2676
769k
        return decay_copy(t.begin());
2677
769k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
1.80k
    {
2676
1.80k
        return decay_copy(t.begin());
2677
1.80k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
22.4M
    {
2676
22.4M
        return decay_copy(t.begin());
2677
22.4M
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
1.59M
    {
2676
1.59M
        return decay_copy(t.begin());
2677
1.59M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
314
    {
2676
314
        return decay_copy(t.begin());
2677
314
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
78.6M
    {
2676
78.6M
        return decay_copy(t.begin());
2677
78.6M
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
225k
    {
2676
225k
        return decay_copy(t.begin());
2677
225k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
9.39M
    {
2676
9.39M
        return decay_copy(t.begin());
2677
9.39M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&>(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
369k
    {
2676
369k
        return decay_copy(t.begin());
2677
369k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
9.11M
    {
2676
9.11M
        return decay_copy(t.begin());
2677
9.11M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
4.37M
    {
2676
4.37M
        return decay_copy(t.begin());
2677
4.37M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
78.8M
    {
2676
78.8M
        return decay_copy(t.begin());
2677
78.8M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&>(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
738k
    {
2676
738k
        return decay_copy(t.begin());
2677
738k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
39.8M
    {
2676
39.8M
        return decay_copy(t.begin());
2677
39.8M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
19.5M
    {
2676
19.5M
        return decay_copy(t.begin());
2677
19.5M
    }
2678
2679
    template <typename T>
2680
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2681
        noexcept(decay_copy(begin(SCN_FWD(t)))))
2682
        -> std::enable_if_t<
2683
            input_or_output_iterator<decltype(decay_copy(begin(SCN_FWD(t))))>,
2684
            decltype(decay_copy(begin(SCN_FWD(t))))>
2685
    {
2686
        return decay_copy(begin(SCN_FWD(t)));
2687
    }
2688
2689
public:
2690
    template <typename T>
2691
    constexpr auto operator()(T&& t) const
2692
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2693
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2694
266M
    {
2695
266M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
266M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
387k
    {
2695
387k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
387k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
769k
    {
2695
769k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
769k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
1.80k
    {
2695
1.80k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
1.80k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
22.4M
    {
2695
22.4M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
22.4M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
1.59M
    {
2695
1.59M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
1.59M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
314
    {
2695
314
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
314
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
78.6M
    {
2695
78.6M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
78.6M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
225k
    {
2695
225k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
225k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
9.39M
    {
2695
9.39M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
9.39M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
369k
    {
2695
369k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
369k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
9.11M
    {
2695
9.11M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
9.11M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
4.37M
    {
2695
4.37M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
4.37M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
78.8M
    {
2695
78.8M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
78.8M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
738k
    {
2695
738k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
738k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
39.8M
    {
2695
39.8M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
39.8M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
19.5M
    {
2695
19.5M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
19.5M
    }
2697
};
2698
2699
}  // namespace detail::begin_
2700
2701
inline constexpr auto begin = detail::begin_::fn{};
2702
2703
namespace detail::end_ {
2704
2705
template <typename T>
2706
void end(T&) = delete;
2707
template <typename T>
2708
void end(const T&) = delete;
2709
2710
struct fn {
2711
private:
2712
    template <typename T,
2713
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2714
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2715
                  nullptr>
2716
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2717
2718
    template <typename T,
2719
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2720
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2721
        -> decltype(t + std::extent_v<remove_cvref_t<T>>)
2722
    {
2723
        return t + std::extent_v<remove_cvref_t<T>>;
2724
    }
2725
2726
    template <typename T,
2727
              typename S = decltype(decay_copy(SCN_DECLVAL(T).end())),
2728
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2729
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2730
        noexcept(decay_copy(SCN_FWD(t).end())))
2731
        -> std::enable_if_t<sentinel_for<S, I>,
2732
                            decltype(decay_copy(SCN_FWD(t).end()))>
2733
503M
    {
2734
503M
        return decay_copy(SCN_FWD(t).end());
2735
503M
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.91M
    {
2734
4.91M
        return decay_copy(SCN_FWD(t).end());
2735
4.91M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t const*, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
39.8M
    {
2734
39.8M
        return decay_copy(SCN_FWD(t).end());
2735
39.8M
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, char const*, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, wchar_t const*, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
1.80k
    {
2734
1.80k
        return decay_copy(SCN_FWD(t).end());
2735
1.80k
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, char const*, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.52M
    {
2734
4.52M
        return decay_copy(SCN_FWD(t).end());
2735
4.52M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
43.9M
    {
2734
43.9M
        return decay_copy(SCN_FWD(t).end());
2735
43.9M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.37M
    {
2734
4.37M
        return decay_copy(SCN_FWD(t).end());
2735
4.37M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.73M
    {
2734
4.73M
        return decay_copy(SCN_FWD(t).end());
2735
4.73M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, wchar_t const*, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
39.0M
    {
2734
39.0M
        return decay_copy(SCN_FWD(t).end());
2735
39.0M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
322M
    {
2734
322M
        return decay_copy(SCN_FWD(t).end());
2735
322M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
19.5M
    {
2734
19.5M
        return decay_copy(SCN_FWD(t).end());
2735
19.5M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
20.2M
    {
2734
20.2M
        return decay_copy(SCN_FWD(t).end());
2735
20.2M
    }
2736
2737
    template <typename T,
2738
              typename S = decltype(decay_copy(end(SCN_DECLVAL(T)))),
2739
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2740
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2741
        decay_copy(end(SCN_FWD(t))))) -> std::enable_if_t<sentinel_for<S, I>, S>
2742
    {
2743
        return decay_copy(end(SCN_FWD(t)));
2744
    }
2745
2746
public:
2747
    template <typename T>
2748
    constexpr auto operator()(T&& t) const
2749
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2750
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2751
503M
    {
2752
503M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
503M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.91M
    {
2752
4.91M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.91M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
39.8M
    {
2752
39.8M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
39.8M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
1.80k
    {
2752
1.80k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
1.80k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.52M
    {
2752
4.52M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.52M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
43.9M
    {
2752
43.9M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
43.9M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.37M
    {
2752
4.37M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.37M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.73M
    {
2752
4.73M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.73M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
39.0M
    {
2752
39.0M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
39.0M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
322M
    {
2752
322M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
322M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
19.5M
    {
2752
19.5M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
19.5M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
20.2M
    {
2752
20.2M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
20.2M
    }
2754
};
2755
2756
}  // namespace detail::end_
2757
2758
inline constexpr auto end = detail::end_::fn{};
2759
2760
namespace detail {
2761
struct range_concept {
2762
    template <typename T>
2763
    auto requires_(T& t) -> decltype(ranges::begin(t), ranges::end(t));
2764
};
2765
}  // namespace detail
2766
2767
template <typename T>
2768
inline constexpr bool range = detail::requires_<detail::range_concept, T>;
2769
2770
template <typename T>
2771
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
2772
2773
template <typename R>
2774
using sentinel_t =
2775
    std::enable_if_t<range<R>, decltype(ranges::end(std::declval<R&>()))>;
2776
2777
template <typename R>
2778
using range_difference_t =
2779
    std::enable_if_t<range<R>, iter_difference_t<iterator_t<R>>>;
2780
2781
template <typename R>
2782
using range_value_t = std::enable_if_t<range<R>, iter_value_t<iterator_t<R>>>;
2783
2784
template <typename R>
2785
using range_reference_t =
2786
    std::enable_if_t<range<R>, iter_reference_t<iterator_t<R>>>;
2787
2788
namespace detail {
2789
template <typename, typename = void>
2790
inline constexpr bool is_object_pointer_v = false;
2791
template <typename P>
2792
inline constexpr bool
2793
    is_object_pointer_v<P,
2794
                        std::enable_if_t<std::is_pointer_v<P> &&
2795
                                         std::is_object_v<iter_value_t<P>>>> =
2796
        true;
2797
2798
namespace data_ {
2799
2800
struct fn {
2801
private:
2802
    template <typename T,
2803
              typename D = decltype(decay_copy(SCN_DECLVAL(T&).data()))>
2804
    static constexpr auto impl(T& t, priority_tag<1>) noexcept(noexcept(
2805
        decay_copy(t.data()))) -> std::enable_if_t<is_object_pointer_v<D>, D>
2806
95.6M
    {
2807
95.6M
        return t.data();
2808
95.6M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
9.30M
    {
2807
9.30M
        return t.data();
2808
9.30M
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
39.5M
    {
2807
39.5M
        return t.data();
2808
39.5M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
2.06M
    {
2807
2.06M
        return t.data();
2808
2.06M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
4.90M
    {
2807
4.90M
        return t.data();
2808
4.90M
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
39.8M
    {
2807
39.8M
        return t.data();
2808
39.8M
    }
2809
2810
    template <typename T>
2811
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2812
        noexcept(scn::ranges::begin(SCN_FWD(t))))
2813
        -> std::enable_if_t<
2814
            is_object_pointer_v<decltype(scn::ranges::begin(SCN_FWD(t)))>,
2815
            decltype(scn::ranges::begin(SCN_FWD(t)))>
2816
0
    {
2817
0
        return scn::ranges::begin(SCN_FWD(t));
2818
0
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v3::detail::priority_tag<0ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v3::detail::priority_tag<0ul>)
2819
2820
public:
2821
    template <typename T>
2822
    constexpr auto operator()(T&& t) const
2823
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<1>{})))
2824
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<1>{}))
2825
95.6M
    {
2826
95.6M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
95.6M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
9.30M
    {
2826
9.30M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
9.30M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
39.5M
    {
2826
39.5M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
39.5M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
2.06M
    {
2826
2.06M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
2.06M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
_ZNK3scn2v36ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
4.90M
    {
2826
4.90M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
4.90M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
39.8M
    {
2826
39.8M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
39.8M
    }
2828
};
2829
2830
}  // namespace data_
2831
}  // namespace detail
2832
2833
inline constexpr auto data = detail::data_::fn{};
2834
2835
template <typename T>
2836
inline constexpr bool disable_sized_range = false;
2837
2838
namespace detail::size_ {
2839
2840
template <typename T>
2841
void size(T&&) = delete;
2842
template <typename T>
2843
void size(T&) = delete;
2844
2845
struct fn {
2846
private:
2847
    template <typename T, std::size_t N>
2848
    static constexpr std::size_t impl(const T (&&)[N], priority_tag<3>) noexcept
2849
    {
2850
        return N;
2851
    }
2852
2853
    template <typename T, std::size_t N>
2854
    static constexpr std::size_t impl(const T (&)[N], priority_tag<3>) noexcept
2855
    {
2856
        return N;
2857
    }
2858
2859
    template <typename T,
2860
              typename I = decltype(decay_copy(std::declval<T>().size()))>
2861
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
2862
        noexcept(decay_copy(SCN_FWD(t).size())))
2863
        -> std::enable_if_t<std::is_integral_v<I> &&
2864
                                !disable_sized_range<remove_cvref_t<T>>,
2865
                            I>
2866
49.8M
    {
2867
49.8M
        return decay_copy(SCN_FWD(t).size());
2868
49.8M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
4.50M
    {
2867
4.50M
        return decay_copy(SCN_FWD(t).size());
2868
4.50M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
78
    {
2867
78
        return decay_copy(SCN_FWD(t).size());
2868
78
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESG_E4typeEOSH_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
610k
    {
2867
610k
        return decay_copy(SCN_FWD(t).size());
2868
610k
    }
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v36ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
4.90M
    {
2867
4.90M
        return decay_copy(SCN_FWD(t).size());
2868
4.90M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
39.8M
    {
2867
39.8M
        return decay_copy(SCN_FWD(t).size());
2868
39.8M
    }
2869
2870
    template <typename T,
2871
              typename I = decltype(decay_copy(size(std::declval<T>())))>
2872
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2873
        noexcept(decay_copy(size(SCN_FWD(t)))))
2874
        -> std::enable_if_t<std::is_integral_v<I> &&
2875
                                !disable_sized_range<remove_cvref_t<T>>,
2876
                            I>
2877
    {
2878
        return decay_copy(size(SCN_FWD(t)));
2879
    }
2880
2881
    template <typename T,
2882
              typename I = decltype(scn::ranges::begin(SCN_DECLVAL(T))),
2883
              typename S = decltype(scn::ranges::end(SCN_DECLVAL(T))),
2884
              typename D = decltype(static_cast<std::size_t>(SCN_DECLVAL(S) -
2885
                                                             SCN_DECLVAL(I)))>
2886
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2887
        static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t))))
2888
        -> std::enable_if_t<!std::is_array_v<remove_cvref_t<T>> &&
2889
                                sized_sentinel_for<S, I> && forward_iterator<I>,
2890
                            D>
2891
    {
2892
        return static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t));
2893
    }
2894
2895
public:
2896
    template <typename T>
2897
    constexpr auto operator()(T&& t) const
2898
        noexcept(noexcept(fn::impl(std::forward<T>(t), priority_tag<3>{})))
2899
            -> decltype(fn::impl(std::forward<T>(t), priority_tag<3>{}))
2900
49.8M
    {
2901
49.8M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
49.8M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSE_
Line
Count
Source
2900
4.50M
    {
2901
4.50M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
4.50M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
78
    {
2901
78
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
78
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSF_
Line
Count
Source
2900
610k
    {
2901
610k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
610k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
_ZNK3scn2v36ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
4.90M
    {
2901
4.90M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
4.90M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
39.8M
    {
2901
39.8M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
39.8M
    }
2903
};
2904
2905
}  // namespace detail::size_
2906
2907
inline constexpr auto size = detail::size_::fn{};
2908
2909
namespace detail {
2910
namespace ssize_ {
2911
struct fn {
2912
private:
2913
    template <typename T>
2914
    using ssize_return_t = std::conditional_t<sizeof(range_difference_t<T>) <
2915
                                                  sizeof(std::ptrdiff_t),
2916
                                              std::ptrdiff_t,
2917
                                              range_difference_t<T>>;
2918
2919
    template <typename T>
2920
    static constexpr auto impl(T&& t) noexcept(
2921
        noexcept(ranges::size(std::forward<T>(t))))
2922
        -> decltype(ranges::size(std::forward<T>(t)), ssize_return_t<T>())
2923
5.11M
    {
2924
5.11M
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
5.11M
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISE_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSE_EEEEE15difference_typeEE4typeELm8EElSN_E4typeE_EEOSE_
Line
Count
Source
2923
4.50M
    {
2924
4.50M
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
4.50M
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
Line
Count
Source
2923
78
    {
2924
78
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
78
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISF_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSF_EEEEE15difference_typeEE4typeELm8EElSO_E4typeE_EEOSF_
Line
Count
Source
2923
610k
    {
2924
610k
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
610k
    }
Unexecuted instantiation: _ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
2926
2927
public:
2928
    template <typename T>
2929
    constexpr auto operator()(T&& t) const
2930
        noexcept(noexcept(fn::impl(std::forward<T>(t))))
2931
            -> decltype(fn::impl(std::forward<T>(t)))
2932
5.11M
    {
2933
5.11M
        return fn::impl(std::forward<T>(t));
2934
5.11M
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2932
4.50M
    {
2933
4.50M
        return fn::impl(std::forward<T>(t));
2934
4.50M
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
2932
78
    {
2933
78
        return fn::impl(std::forward<T>(t));
2934
78
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
2932
610k
    {
2933
610k
        return fn::impl(std::forward<T>(t));
2934
610k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
2935
};
2936
}  // namespace ssize_
2937
}  // namespace detail
2938
2939
inline constexpr auto ssize = detail::ssize_::fn{};
2940
2941
namespace detail::empty_ {
2942
struct fn {
2943
private:
2944
    template <typename T>
2945
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
2946
        noexcept(static_cast<bool>(SCN_FWD(t).empty())))
2947
        -> decltype(static_cast<bool>(SCN_FWD(t).empty()))
2948
101M
    {
2949
101M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
101M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
17.3M
    {
2949
17.3M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
17.3M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
39.5M
    {
2949
39.5M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
39.5M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
4.90M
    {
2949
4.90M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
4.90M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
39.8M
    {
2949
39.8M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
39.8M
    }
2951
2952
    template <typename T>
2953
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2954
        noexcept(ranges::size(SCN_FWD(t)) == 0))
2955
        -> decltype(ranges::size(SCN_FWD(t)) == 0)
2956
    {
2957
        return ranges::size(SCN_FWD(t)) == 0;
2958
    }
2959
2960
    template <typename T,
2961
              typename I = decltype(ranges::begin(std::declval<T>()))>
2962
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2963
        noexcept(ranges::begin(t) == ranges::end(t)))
2964
        -> std::enable_if_t<forward_iterator<I>,
2965
                            decltype(ranges::begin(t) == ranges::end(t))>
2966
    {
2967
        return ranges::begin(t) == ranges::end(t);
2968
    }
2969
2970
public:
2971
    template <typename T>
2972
    constexpr auto operator()(T&& t) const
2973
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<2>{})))
2974
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<2>{}))
2975
101M
    {
2976
101M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
101M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
17.3M
    {
2976
17.3M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
17.3M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
39.5M
    {
2976
39.5M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
39.5M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
4.90M
    {
2976
4.90M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
4.90M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
39.8M
    {
2976
39.8M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
39.8M
    }
2978
};
2979
}  // namespace detail::empty_
2980
2981
inline constexpr auto empty = detail::empty_::fn{};
2982
2983
template <typename T>
2984
inline constexpr bool borrowed_range =
2985
    range<T> && (std::is_lvalue_reference_v<T> ||
2986
                 enable_borrowed_range<detail::remove_cvref_t<T>>);
2987
2988
namespace detail {
2989
struct sized_range_concept {
2990
    template <typename T>
2991
    auto requires_(T& t) -> decltype(ranges::size(t));
2992
};
2993
}  // namespace detail
2994
2995
template <typename T>
2996
inline constexpr bool sized_range =
2997
    range<T> && !disable_sized_range<detail::remove_cvref_t<T>> &&
2998
    detail::requires_<detail::sized_range_concept, T>;
2999
3000
namespace detail {
3001
struct output_range_concept {
3002
    template <typename, typename>
3003
    static auto test(long) -> std::false_type;
3004
3005
    template <typename R, typename T>
3006
    static auto test(int)
3007
        -> std::enable_if_t<range<R> && output_iterator<iterator_t<R>, T>,
3008
                            std::true_type>;
3009
};
3010
}  // namespace detail
3011
3012
template <typename R, typename T>
3013
inline constexpr bool output_range =
3014
    decltype(detail::output_range_concept::test<R, T>(0))::value;
3015
3016
namespace detail {
3017
struct input_range_concept {
3018
    template <typename>
3019
    static auto test(long) -> std::false_type;
3020
3021
    template <typename T>
3022
    static auto test(int)
3023
        -> std::enable_if_t<range<T> && input_iterator<iterator_t<T>>,
3024
                            std::true_type>;
3025
};
3026
}  // namespace detail
3027
3028
template <typename T>
3029
inline constexpr bool input_range =
3030
    decltype(detail::input_range_concept::test<T>(0))::value;
3031
3032
namespace detail {
3033
struct forward_range_concept {
3034
    template <typename>
3035
    static auto test(long) -> std::false_type;
3036
3037
    template <typename T>
3038
    static auto test(int)
3039
        -> std::enable_if_t<input_range<T> && forward_iterator<iterator_t<T>>,
3040
                            std::true_type>;
3041
};
3042
}  // namespace detail
3043
3044
template <typename T>
3045
inline constexpr bool forward_range =
3046
    decltype(detail::forward_range_concept::test<T>(0))::value;
3047
3048
namespace detail {
3049
struct bidirectional_range_concept {
3050
    template <typename>
3051
    static auto test(long) -> std::false_type;
3052
3053
    template <typename T>
3054
    static auto test(int)
3055
        -> std::enable_if_t<forward_range<T> &&
3056
                                bidirectional_iterator<iterator_t<T>>,
3057
                            std::true_type>;
3058
};
3059
}  // namespace detail
3060
3061
template <typename T>
3062
inline constexpr bool bidirectional_range =
3063
    decltype(detail::bidirectional_range_concept::test<T>(0))::value;
3064
3065
namespace detail {
3066
struct random_access_range_concept {
3067
    template <typename>
3068
    static auto test(long) -> std::false_type;
3069
3070
    template <typename T>
3071
    static auto test(int)
3072
        -> std::enable_if_t<bidirectional_range<T> &&
3073
                                random_access_iterator<iterator_t<T>>,
3074
                            std::true_type>;
3075
};
3076
}  // namespace detail
3077
3078
template <typename T>
3079
inline constexpr bool random_access_range =
3080
    decltype(detail::random_access_range_concept::test<T>(0))::value;
3081
3082
namespace detail {
3083
// FIXME: Not to spec
3084
// We only require random_access_iterator, not contiguous_iterator
3085
// This is so that vector::iterator, string::iterator etc can model
3086
// contiguous_range.
3087
// If we do range-v3-style deep integration with iterator_traits then
3088
// this could be fixed
3089
struct contiguous_range_concept {
3090
    template <typename>
3091
    static auto test(long) -> std::false_type;
3092
3093
    template <typename T>
3094
    static auto test(int) -> std::enable_if_t<
3095
        random_access_range<T> && /* contiguous_iterator<iterator_t<T>>
3096
                                   * &&
3097
                                   */
3098
            detail::requires_<contiguous_range_concept, T>,
3099
        std::true_type>;
3100
3101
    template <typename T>
3102
    auto requires_(T& t)
3103
        -> decltype(requires_expr<std::is_same_v<
3104
                        decltype(ranges::data(t)),
3105
                        std::add_pointer_t<range_reference_t<T>>>>{});
3106
};
3107
}  // namespace detail
3108
3109
template <typename R>
3110
inline constexpr bool contiguous_range =
3111
    decltype(detail::contiguous_range_concept::test<R>(0))::value;
3112
3113
namespace detail {
3114
struct common_range_concept {
3115
    template <typename>
3116
    static auto test(long) -> std::false_type;
3117
3118
    template <typename T>
3119
    static auto test(int)
3120
        -> std::enable_if_t<range<T> &&
3121
                                std::is_same_v<iterator_t<T>, sentinel_t<T>>,
3122
                            std::true_type>;
3123
};
3124
}  // namespace detail
3125
3126
template <typename T>
3127
inline constexpr bool common_range =
3128
    decltype(detail::common_range_concept::test<T>(0))::value;
3129
3130
struct dangling {
3131
    constexpr dangling() noexcept = default;
3132
3133
    template <typename... Args>
3134
    constexpr dangling(Args&&...) noexcept
3135
    {
3136
    }
3137
};
3138
3139
template <typename R>
3140
using borrowed_iterator_t =
3141
    std::conditional_t<borrowed_range<R>, iterator_t<R>, dangling>;
3142
3143
template <typename D>
3144
class view_interface {
3145
    static_assert(std::is_class<D>::value, "");
3146
    static_assert(std::is_same_v<D, std::remove_cv_t<D>>, "");
3147
3148
private:
3149
    constexpr D& derived() noexcept
3150
113M
    {
3151
113M
        return static_cast<D&>(*this);
3152
113M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::derived()
Line
Count
Source
3150
34.7M
    {
3151
34.7M
        return static_cast<D&>(*this);
3152
34.7M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived()
Line
Count
Source
3150
79.0M
    {
3151
79.0M
        return static_cast<D&>(*this);
3152
79.0M
    }
3153
3154
    constexpr const D& derived() const noexcept
3155
89.4M
    {
3156
89.4M
        return static_cast<const D&>(*this);
3157
89.4M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::derived() const
Line
Count
Source
3155
9.77M
    {
3156
9.77M
        return static_cast<const D&>(*this);
3157
9.77M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived() const
Line
Count
Source
3155
79.6M
    {
3156
79.6M
        return static_cast<const D&>(*this);
3157
79.6M
    }
3158
3159
public:
3160
    template <typename R = D>
3161
    [[nodiscard]] constexpr auto empty()
3162
        -> std::enable_if_t<forward_range<R>, bool>
3163
    {
3164
        return ranges::begin(derived()) == ranges::end(derived());
3165
    }
3166
3167
    template <typename R = D>
3168
    [[nodiscard]] constexpr auto empty() const
3169
        -> std::enable_if_t<forward_range<const R>, bool>
3170
    {
3171
        return ranges::begin(derived()) == ranges::end(derived());
3172
    }
3173
3174
    template <typename R = D,
3175
              typename = decltype(ranges::empty(std::declval<R&>()))>
3176
    constexpr explicit operator bool()
3177
    {
3178
        return !ranges::empty(derived());
3179
    }
3180
3181
    template <typename R = D,
3182
              typename = decltype(ranges::empty(std::declval<const R&>()))>
3183
    constexpr explicit operator bool() const
3184
    {
3185
        return !ranges::empty(derived());
3186
    }
3187
3188
    template <typename R = D,
3189
              typename = std::enable_if_t<contiguous_iterator<iterator_t<R>>>>
3190
    constexpr auto data()
3191
56.9M
    {
3192
56.9M
        return ranges::empty(derived())
3193
56.9M
                   ? nullptr
3194
56.9M
                   : std::addressof(*ranges::begin(derived()));
3195
56.9M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Line
Count
Source
3191
17.3M
    {
3192
17.3M
        return ranges::empty(derived())
3193
17.3M
                   ? nullptr
3194
17.3M
                   : std::addressof(*ranges::begin(derived()));
3195
17.3M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Line
Count
Source
3191
39.5M
    {
3192
39.5M
        return ranges::empty(derived())
3193
39.5M
                   ? nullptr
3194
39.5M
                   : std::addressof(*ranges::begin(derived()));
3195
39.5M
    }
3196
3197
    template <typename R = D,
3198
              typename = std::enable_if_t<
3199
                  range<const R> && contiguous_iterator<iterator_t<const R>>>>
3200
    constexpr auto data() const
3201
44.7M
    {
3202
44.7M
        return ranges::empty(derived())
3203
44.7M
                   ? nullptr
3204
44.7M
                   : std::addressof(*ranges::begin(derived()));
3205
44.7M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>() const
Line
Count
Source
3201
4.90M
    {
3202
4.90M
        return ranges::empty(derived())
3203
4.90M
                   ? nullptr
3204
4.90M
                   : std::addressof(*ranges::begin(derived()));
3205
4.90M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>() const
Line
Count
Source
3201
39.8M
    {
3202
39.8M
        return ranges::empty(derived())
3203
39.8M
                   ? nullptr
3204
39.8M
                   : std::addressof(*ranges::begin(derived()));
3205
39.8M
    }
3206
3207
    template <typename R = D,
3208
              typename = std::enable_if_t<
3209
                  forward_range<R> &&
3210
                  sized_sentinel_for<sentinel_t<R>, iterator_t<R>>>>
3211
    constexpr auto size()
3212
    {
3213
        return ranges::end(derived()) - ranges::begin(derived());
3214
    }
3215
3216
    template <typename R = D,
3217
              typename = std::enable_if_t<
3218
                  forward_range<const R> &&
3219
                  sized_sentinel_for<sentinel_t<const R>, iterator_t<const R>>>>
3220
    constexpr auto size() const
3221
    {
3222
        return ranges::end(derived()) - ranges::begin(derived());
3223
    }
3224
3225
#if 0
3226
    template <typename R = D, typename = std::enable_if_t<forward_range<R>>>
3227
    constexpr decltype(auto) front()
3228
    {
3229
        return *ranges::begin(derived());
3230
    }
3231
3232
    template <typename R = D,
3233
              typename = std::enable_if_t<forward_range<const R>>>
3234
    constexpr decltype(auto) front() const
3235
    {
3236
        return *ranges::begin(derived());
3237
    }
3238
3239
    template <
3240
        typename R = D,
3241
        typename = std::enable_if_t<bidirectional_range<R> && common_range<R>>>
3242
    constexpr decltype(auto) back()
3243
    {
3244
        return *ranges::prev(ranges::end(derived()));
3245
    }
3246
3247
    template <typename R = D,
3248
              typename = std::enable_if_t<bidirectional_range<const R> &&
3249
                                          common_range<const R>>>
3250
    constexpr decltype(auto) back() const
3251
    {
3252
        return *ranges::prev(ranges::end(derived()));
3253
    }
3254
3255
    template <typename R = D,
3256
              typename = std::enable_if_t<random_access_range<R>>>
3257
    constexpr decltype(auto) operator[](iter_difference_t<iterator_t<R>> n)
3258
    {
3259
        return ranges::begin(derived())[n];
3260
    }
3261
#endif
3262
3263
    template <typename R = D,
3264
              typename = std::enable_if_t<random_access_range<const R>>>
3265
    constexpr decltype(auto) operator[](
3266
        iter_difference_t<iterator_t<const R>> n) const
3267
    {
3268
        return ranges::begin(derived())[n];
3269
    }
3270
};
3271
3272
namespace detail::subrange_ {
3273
3274
template <typename I, typename S = I>
3275
class subrange : public view_interface<subrange<I, S>> {
3276
    static_assert(input_or_output_iterator<I>);
3277
    static_assert(sentinel_for<S, I>);
3278
3279
public:
3280
    subrange() = default;
3281
3282
    template <typename I_,
3283
              std::enable_if_t<std::is_convertible_v<I_, I>>* = nullptr>
3284
    constexpr subrange(I_ i, S s)
3285
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3286
1.24G
    {
3287
1.24G
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::subrange<char const*, (void*)0>(char const*, char const*)
Line
Count
Source
3286
44.8M
    {
3287
44.8M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::subrange<wchar_t const*, (void*)0>(wchar_t const*, wchar_t const*)
Line
Count
Source
3286
759M
    {
3287
759M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
3286
46.5M
    {
3287
46.5M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
3286
322M
    {
3287
322M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
3286
3.81M
    {
3287
3.81M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true>)
Line
Count
Source
3286
193k
    {
3287
193k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>)
Line
Count
Source
3286
1.80k
    {
3287
1.80k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
3286
19.5M
    {
3287
19.5M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>)
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, (void*)0>(std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>)
Line
Count
Source
3286
9.11M
    {
3287
9.11M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, (void*)0>(std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>)
Line
Count
Source
3286
39.8M
    {
3287
39.8M
    }
3288
3289
    template <
3290
        typename R,
3291
        std::enable_if_t<is_not_self<R, subrange> && borrowed_range<R> &&
3292
                         std::is_convertible_v<iterator_t<R>, I> &&
3293
                         std::is_convertible_v<sentinel_t<R>, S>>* = nullptr>
3294
    constexpr subrange(R&& r)
3295
        : m_iterator(scn::ranges::begin(r)), m_sentinel(scn::ranges::end(r))
3296
    {
3297
    }
3298
3299
    constexpr I begin() const
3300
3.21G
    {
3301
3.21G
        return m_iterator;
3302
3.21G
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3300
165M
    {
3301
165M
        return m_iterator;
3302
165M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3300
949M
    {
3301
949M
        return m_iterator;
3302
949M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::begin() const
Line
Count
Source
3300
97.2M
    {
3301
97.2M
        return m_iterator;
3302
97.2M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::begin() const
Line
Count
Source
3300
1.90G
    {
3301
1.90G
        return m_iterator;
3302
1.90G
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::begin() const
Line
Count
Source
3300
6.61M
    {
3301
6.61M
        return m_iterator;
3302
6.61M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::begin() const
Line
Count
Source
3300
552k
    {
3301
552k
        return m_iterator;
3302
552k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::begin() const
Line
Count
Source
3300
1.80k
    {
3301
1.80k
        return m_iterator;
3302
1.80k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::begin() const
Line
Count
Source
3300
19.5M
    {
3301
19.5M
        return m_iterator;
3302
19.5M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::begin() const
Line
Count
Source
3300
13.4M
    {
3301
13.4M
        return m_iterator;
3302
13.4M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::begin() const
Line
Count
Source
3300
59.4M
    {
3301
59.4M
        return m_iterator;
3302
59.4M
    }
3303
    constexpr S end() const
3304
3.80G
    {
3305
3.80G
        return m_sentinel;
3306
3.80G
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::end() const
Line
Count
Source
3304
61.2M
    {
3305
61.2M
        return m_sentinel;
3306
61.2M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::end() const
Line
Count
Source
3304
2.32G
    {
3305
2.32G
        return m_sentinel;
3306
2.32G
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::end() const
Line
Count
Source
3304
119M
    {
3305
119M
        return m_sentinel;
3306
119M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::end() const
Line
Count
Source
3304
6.61M
    {
3305
6.61M
        return m_sentinel;
3306
6.61M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::end() const
Line
Count
Source
3304
373k
    {
3305
373k
        return m_sentinel;
3306
373k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::end() const
Line
Count
Source
3304
1.80k
    {
3305
1.80k
        return m_sentinel;
3306
1.80k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::end() const
Line
Count
Source
3304
882M
    {
3305
882M
        return m_sentinel;
3306
882M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::end() const
Line
Count
Source
3304
19.5M
    {
3305
19.5M
        return m_sentinel;
3306
19.5M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::end() const
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::end() const
Line
Count
Source
3304
48.3M
    {
3305
48.3M
        return m_sentinel;
3306
48.3M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::end() const
Line
Count
Source
3304
341M
    {
3305
341M
        return m_sentinel;
3306
341M
    }
3307
3308
    SCN_NODISCARD constexpr bool empty() const
3309
101M
    {
3310
101M
        return m_iterator == m_sentinel;
3311
101M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::empty() const
Line
Count
Source
3309
22.3M
    {
3310
22.3M
        return m_iterator == m_sentinel;
3311
22.3M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::empty() const
Line
Count
Source
3309
79.3M
    {
3310
79.3M
        return m_iterator == m_sentinel;
3311
79.3M
    }
3312
3313
    template <typename I_ = I,
3314
              std::enable_if_t<sized_sentinel_for<S, I_>>* = nullptr>
3315
    constexpr std::size_t size() const
3316
102M
    {
3317
102M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
102M
    }
unsigned long scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::size<char const*, (void*)0>() const
Line
Count
Source
3316
22.4M
    {
3317
22.4M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
22.4M
    }
unsigned long scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::size<wchar_t const*, (void*)0>() const
Line
Count
Source
3316
80.3M
    {
3317
80.3M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
80.3M
    }
3319
3320
private:
3321
    SCN_NO_UNIQUE_ADDRESS I m_iterator{};
3322
    SCN_NO_UNIQUE_ADDRESS S m_sentinel{};
3323
};
3324
3325
template <typename I,
3326
          typename S,
3327
          std::enable_if_t<input_or_output_iterator<I> && sentinel_for<S, I>>* =
3328
              nullptr>
3329
subrange(I, S) -> subrange<I, S>;
3330
3331
template <typename R, std::enable_if_t<borrowed_range<R>>* = nullptr>
3332
subrange(R&&) -> subrange<iterator_t<R>, sentinel_t<R>>;
3333
3334
}  // namespace detail::subrange_
3335
3336
using detail::subrange_::subrange;
3337
3338
template <typename I, typename S>
3339
inline constexpr bool enable_borrowed_range<subrange<I, S>> = true;
3340
3341
struct default_sentinel_t {};
3342
inline constexpr default_sentinel_t default_sentinel{};
3343
3344
}  // namespace ranges
3345
3346
namespace detail {
3347
3348
namespace char_t_fn {
3349
template <typename T, typename = typename T::value_type>
3350
constexpr auto impl_nonarray(priority_tag<2>)
3351
0
{
3352
0
    return tag_type<typename T::value_type>{};
3353
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
3354
template <typename T, typename = decltype(SCN_DECLVAL(T&).begin())>
3355
constexpr auto impl_nonarray(priority_tag<1>)
3356
0
{
3357
0
    return tag_type<remove_cvref_t<decltype(*(SCN_DECLVAL(T&).begin()))>>{};
3358
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::detail::priority_tag<1ul>)
3359
template <typename T>
3360
constexpr auto impl_nonarray(priority_tag<0>)
3361
{
3362
    return tag_type<remove_cvref_t<decltype(*begin(SCN_DECLVAL(T&)))>>{};
3363
}
3364
3365
template <typename T,
3366
          typename = std::enable_if_t<ranges::range<remove_cvref_t<T>>>>
3367
constexpr auto impl()
3368
0
{
3369
0
    using T_nocvref = remove_cvref_t<T>;
3370
0
    if constexpr (std::is_array_v<T_nocvref>) {
3371
0
        return tag_type<std::remove_all_extents_t<T_nocvref>>{};
3372
0
    }
3373
0
    else {
3374
0
        return impl_nonarray<T_nocvref>(priority_tag<2>{});
3375
0
    }
3376
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>()
3377
3378
template <typename Range>
3379
using result = decltype(impl<Range>());
3380
}  // namespace char_t_fn
3381
3382
template <typename Range>
3383
using char_t = typename char_t_fn::result<Range>::type;
3384
3385
template <typename Range, typename = void>
3386
inline constexpr bool is_file_or_narrow_range_impl = false;
3387
template <>
3388
inline constexpr bool is_file_or_narrow_range_impl<std::FILE*, void> = true;
3389
template <typename Range>
3390
inline constexpr bool
3391
    is_file_or_narrow_range_impl<Range,
3392
                                 std::enable_if_t<ranges::range<Range>>> =
3393
        std::is_same_v<char_t<Range>, char>;
3394
3395
template <typename Range>
3396
inline constexpr bool is_file_or_narrow_range =
3397
    is_file_or_narrow_range_impl<remove_cvref_t<Range>>;
3398
3399
template <typename Range, typename = void>
3400
inline constexpr bool is_wide_range = false;
3401
template <typename Range>
3402
inline constexpr bool
3403
    is_wide_range<Range,
3404
                  std::enable_if_t<ranges::range<remove_cvref_t<Range>>>> =
3405
        std::is_same_v<char_t<Range>, wchar_t>;
3406
3407
template <typename R, bool Borrowed = ranges::borrowed_range<R>>
3408
struct borrowed_tail_subrange {
3409
    using type = ranges::subrange<ranges::iterator_t<R>, ranges::sentinel_t<R>>;
3410
};
3411
template <typename R>
3412
struct borrowed_tail_subrange<R, false> {
3413
    using type = ranges::dangling;
3414
};
3415
3416
/// Equivalent to
3417
/// `ranges::subrange<ranges::iterator_t<R>,
3418
/// ranges::sentinel_t<R>>` if `R` is a `borrowed_range`, and
3419
/// `ranges::dangling` otherwise.
3420
///
3421
/// Similar to `ranges::borrowed_subrange_t<R>`, expect this preserves
3422
/// the range sentinel.
3423
template <typename R>
3424
using borrowed_tail_subrange_t = typename borrowed_tail_subrange<R>::type;
3425
3426
}  // namespace detail
3427
3428
namespace ranges {
3429
template <typename CharT, typename Traits>
3430
inline constexpr bool
3431
    enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
3432
}
3433
3434
/////////////////////////////////////////////////////////////////
3435
// Small generic algorithms
3436
/////////////////////////////////////////////////////////////////
3437
3438
namespace detail {
3439
3440
/**
3441
 * Implementation of `std::min_element` without including `<algorithm>`
3442
 */
3443
template <typename It>
3444
constexpr It min_element(It first, It last)
3445
{
3446
    if (first == last) {
3447
        return last;
3448
    }
3449
3450
    It smallest = first;
3451
    ++first;
3452
    for (; first != last; ++first) {
3453
        if (*first < *smallest) {
3454
            smallest = first;
3455
        }
3456
    }
3457
    return smallest;
3458
}
3459
3460
/**
3461
 * Implementation of `std::min` without including `<algorithm>`
3462
 */
3463
template <typename T>
3464
constexpr T min(T a, T b) noexcept
3465
{
3466
    return (b < a) ? b : a;
3467
}
3468
3469
template <bool IsConstexpr, typename T, typename Ptr = const T*>
3470
constexpr Ptr find(Ptr first, Ptr last, T value)
3471
{
3472
    for (; first != last; ++first) {
3473
        if (*first == value) {
3474
            return first;
3475
        }
3476
    }
3477
    return last;
3478
}
3479
3480
template <>
3481
inline const char* find<false, char>(const char* first,
3482
                                     const char* last,
3483
                                     char value)
3484
0
{
3485
0
    auto ptr = static_cast<const char*>(
3486
0
        std::memchr(first, value, static_cast<size_t>(last - first)));
3487
0
    return ptr != nullptr ? ptr : last;
3488
0
}
3489
3490
}  // namespace detail
3491
3492
/////////////////////////////////////////////////////////////////
3493
// Errors
3494
/////////////////////////////////////////////////////////////////
3495
3496
/**
3497
 * Error class.
3498
 * Used as a return value for functions without a success value.
3499
 *
3500
 * \ingroup result
3501
 */
3502
class SCN_TRIVIAL_ABI scan_error {
3503
public:
3504
    /// Error code
3505
    enum code {
3506
        /// No error
3507
        good = 0,
3508
        /// EOF
3509
        end_of_range,
3510
        /// Format string was invalid
3511
        invalid_format_string,
3512
        /// Scanned value was invalid for given type.
3513
        /// e.g. a period '.' when scanning for an int
3514
        invalid_scanned_value,
3515
        /// Scanned value was out of range for the desired type.
3516
        /// (e.g. `>2^32` for an `uint32_t`)
3517
        value_out_of_range,
3518
3519
        max_error
3520
    };
3521
3522
private:
3523
    using code_t = code;
3524
3525
public:
3526
    struct success_tag_t {};
3527
    static constexpr success_tag_t success_tag() noexcept
3528
0
    {
3529
0
        return {};
3530
0
    }
3531
3532
    /// Constructs an error with `code::good` and no message.
3533
166M
    constexpr scan_error() noexcept = default;
3534
0
    constexpr scan_error(success_tag_t) noexcept : scan_error() {}
3535
3536
    /// Constructs an error with `c` and `m`
3537
    constexpr scan_error(code_t c, const char* m) noexcept : m_msg(m), m_code(c)
3538
8.18M
    {
3539
8.18M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_code);
3540
8.18M
    }
3541
3542
    /// Evaluated to true if there was no error
3543
    constexpr explicit operator bool() const noexcept
3544
232M
    {
3545
232M
        return m_code == good;
3546
232M
    }
3547
3548
    constexpr explicit operator code_t() const noexcept
3549
0
    {
3550
0
        return m_code;
3551
0
    }
3552
3553
    /// Get error code
3554
    SCN_NODISCARD constexpr code_t code() const noexcept
3555
1.46M
    {
3556
1.46M
        return m_code;
3557
1.46M
    }
3558
    /// Get error message
3559
    SCN_NODISCARD constexpr auto msg() const noexcept -> const char*
3560
0
    {
3561
0
        return m_msg;
3562
0
    }
3563
3564
private:
3565
    const char* m_msg{nullptr};
3566
    code_t m_code{good};
3567
};
3568
3569
constexpr inline bool operator==(scan_error a, scan_error b) noexcept
3570
0
{
3571
0
    return a.code() == b.code();
3572
0
}
3573
constexpr inline bool operator!=(scan_error a, scan_error b) noexcept
3574
0
{
3575
0
    return !(a == b);
3576
0
}
3577
3578
constexpr inline bool operator==(scan_error a, enum scan_error::code b) noexcept
3579
1.46M
{
3580
1.46M
    return a.code() == b;
3581
1.46M
}
3582
constexpr inline bool operator!=(scan_error a, enum scan_error::code b) noexcept
3583
1.46M
{
3584
1.46M
    return !(a == b);
3585
1.46M
}
3586
3587
constexpr inline bool operator==(enum scan_error::code a, scan_error b) noexcept
3588
0
{
3589
0
    return a == b.code();
3590
0
}
3591
constexpr inline bool operator!=(enum scan_error::code a, scan_error b) noexcept
3592
0
{
3593
0
    return !(a == b);
3594
0
}
3595
3596
namespace detail {
3597
// Intentionally not constexpr, to give out a compile-time error
3598
scan_error handle_error(scan_error e);
3599
}  // namespace detail
3600
3601
/**
3602
 * An `expected<T, scan_error>`.
3603
 *
3604
 * Not a type alias to shorten template names
3605
 *
3606
 * \ingroup result
3607
 */
3608
template <typename T>
3609
struct scan_expected : public expected<T, scan_error> {
3610
    using expected<T, scan_error>::expected;
3611
3612
    scan_expected(const expected<T, scan_error>& other)
3613
        : expected<T, scan_error>(other)
3614
    {
3615
    }
3616
    scan_expected(expected<T, scan_error>&& other)
3617
        : expected<T, scan_error>(SCN_MOVE(other))
3618
7.24M
    {
3619
7.24M
    }
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>&&)
scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>&&)
Line
Count
Source
3618
1.60k
    {
3619
1.60k
    }
scn::v3::scan_expected<char const*>::scan_expected(scn::v3::expected<char const*, scn::v3::scan_error>&&)
Line
Count
Source
3618
2.20M
    {
3619
2.20M
    }
scn::v3::scan_expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::scan_expected(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>&&)
Line
Count
Source
3618
3.87M
    {
3619
3.87M
    }
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>&&)
scn::v3::scan_expected<wchar_t const*>::scan_expected(scn::v3::expected<wchar_t const*, scn::v3::scan_error>&&)
Line
Count
Source
3618
372k
    {
3619
372k
    }
scn::v3::scan_expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::scan_expected(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>&&)
Line
Count
Source
3618
796k
    {
3619
796k
    }
3620
};
3621
3622
template <typename... Args>
3623
auto unexpected_scan_error(Args&&... args)
3624
857k
{
3625
857k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
857k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [74]>(scn::v3::scan_error::code&&, char const (&) [74])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [41]>(scn::v3::scan_error::code&&, char const (&) [41])
Line
Count
Source
3624
126k
{
3625
126k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
126k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [51]>(scn::v3::scan_error::code&&, char const (&) [51])
Line
Count
Source
3624
64.5k
{
3625
64.5k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
64.5k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [37]>(scn::v3::scan_error::code&&, char const (&) [37])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [20]>(scn::v3::scan_error::code&&, char const (&) [20])
Line
Count
Source
3624
1.30k
{
3625
1.30k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
1.30k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [35]>(scn::v3::scan_error::code&&, char const (&) [35])
Line
Count
Source
3624
13.7k
{
3625
13.7k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
13.7k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [34]>(scn::v3::scan_error::code&&, char const (&) [34])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [31]>(scn::v3::scan_error::code&&, char const (&) [31])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [38]>(scn::v3::scan_error::code&&, char const (&) [38])
Line
Count
Source
3624
32.2k
{
3625
32.2k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
32.2k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [14]>(scn::v3::scan_error::code&&, char const (&) [14])
Line
Count
Source
3624
5.07k
{
3625
5.07k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
5.07k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [32]>(scn::v3::scan_error::code&&, char const (&) [32])
Line
Count
Source
3624
2.68k
{
3625
2.68k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
2.68k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [36]>(scn::v3::scan_error::code&&, char const (&) [36])
Line
Count
Source
3624
168
{
3625
168
    return unexpected(scan_error{SCN_FWD(args)...});
3626
168
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [59]>(scn::v3::scan_error::code&&, char const (&) [59])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [52]>(scn::v3::scan_error::code&&, char const (&) [52])
Line
Count
Source
3624
216
{
3625
216
    return unexpected(scan_error{SCN_FWD(args)...});
3626
216
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [66]>(scn::v3::scan_error::code&&, char const (&) [66])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [77]>(scn::v3::scan_error::code&&, char const (&) [77])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [40]>(scn::v3::scan_error::code&&, char const (&) [40])
Line
Count
Source
3624
5.74k
{
3625
5.74k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
5.74k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [42]>(scn::v3::scan_error::code&&, char const (&) [42])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [47]>(scn::v3::scan_error::code&&, char const (&) [47])
Line
Count
Source
3624
4.60k
{
3625
4.60k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
4.60k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [23]>(scn::v3::scan_error::code&&, char const (&) [23])
Line
Count
Source
3624
26
{
3625
26
    return unexpected(scan_error{SCN_FWD(args)...});
3626
26
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [19]>(scn::v3::scan_error::code&&, char const (&) [19])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [70]>(scn::v3::scan_error::code&&, char const (&) [70])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [22]>(scn::v3::scan_error::code&&, char const (&) [22])
Line
Count
Source
3624
386k
{
3625
386k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
386k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [29]>(scn::v3::scan_error::code&&, char const (&) [29])
Line
Count
Source
3624
158k
{
3625
158k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
158k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [17]>(scn::v3::scan_error::code&&, char const (&) [17])
Line
Count
Source
3624
56.2k
{
3625
56.2k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
56.2k
}
3627
3628
namespace detail {
3629
template <typename T>
3630
struct is_expected_impl<scan_expected<T>> : std::true_type {};
3631
}  // namespace detail
3632
3633
4.09M
#define SCN_TRY_IMPL_CONCAT(a, b)  a##b
3634
4.09M
#define SCN_TRY_IMPL_CONCAT2(a, b) SCN_TRY_IMPL_CONCAT(a, b)
3635
4.09M
#define SCN_TRY_TMP                SCN_TRY_IMPL_CONCAT2(_scn_try_tmp_, __LINE__)
3636
3637
#define SCN_TRY_ASSIGN(init, x)                        \
3638
263M
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Line
Count
Source
3638
561k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Line
Count
Source
3638
997k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3638
2
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3638
306
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
_ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Line
Count
Source
3638
42.6k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Line
Count
Source
3638
105k
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
3639
263M
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) {                  \
3640
4.09M
        return ::scn::unexpected(SCN_TRY_TMP.error()); \
3641
4.09M
    }                                                  \
3642
263M
    init = *SCN_FWD(SCN_TRY_TMP);
3643
227M
#define SCN_TRY(name, x) SCN_TRY_ASSIGN(auto name, x)
3644
3645
#define SCN_TRY_ERR(name, x)          \
3646
    auto&& SCN_TRY_TMP = (x);         \
3647
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) { \
3648
        return SCN_TRY_TMP.error();   \
3649
    }                                 \
3650
    auto name = *SCN_FWD(SCN_TRY_TMP);
3651
3652
/////////////////////////////////////////////////////////////////
3653
// string_view utilities
3654
/////////////////////////////////////////////////////////////////
3655
3656
namespace detail {
3657
3658
template <typename T>
3659
struct is_string_view : std::false_type {};
3660
template <typename CharT, typename Traits>
3661
struct is_string_view<std::basic_string_view<CharT, Traits>> : std::true_type {
3662
};
3663
3664
// workarounds for MSVC string_view debug iterators
3665
template <typename CharT>
3666
constexpr std::basic_string_view<CharT> make_string_view_from_iterators(
3667
    typename std::basic_string_view<CharT>::iterator first,
3668
    typename std::basic_string_view<CharT>::iterator last)
3669
466M
{
3670
466M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
466M
                                          decltype(first), decltype(last)> &&
3672
466M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
466M
        return {first, last};
3674
466M
    }
3675
466M
    else {
3676
466M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
466M
                                       to_address(first), to_address(last)))};
3678
466M
    }
3679
466M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::make_string_view_from_iterators<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3669
22.2M
{
3670
22.2M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
22.2M
                                          decltype(first), decltype(last)> &&
3672
22.2M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
22.2M
        return {first, last};
3674
22.2M
    }
3675
22.2M
    else {
3676
22.2M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
22.2M
                                       to_address(first), to_address(last)))};
3678
22.2M
    }
3679
22.2M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::make_string_view_from_iterators<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3669
444M
{
3670
444M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
444M
                                          decltype(first), decltype(last)> &&
3672
444M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
444M
        return {first, last};
3674
444M
    }
3675
444M
    else {
3676
444M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
444M
                                       to_address(first), to_address(last)))};
3678
444M
    }
3679
444M
}
3680
3681
template <typename CharT>
3682
constexpr std::basic_string_view<CharT> make_string_view_from_pointers(
3683
    const CharT* first,
3684
    const CharT* last)
3685
321M
{
3686
321M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
321M
                                          const CharT*, const CharT*>) {
3688
321M
        return {first, last};
3689
321M
    }
3690
321M
    else {
3691
321M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
321M
    }
3693
321M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::make_string_view_from_pointers<char>(char const*, char const*)
Line
Count
Source
3685
5.36M
{
3686
5.36M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
5.36M
                                          const CharT*, const CharT*>) {
3688
5.36M
        return {first, last};
3689
5.36M
    }
3690
5.36M
    else {
3691
5.36M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
5.36M
    }
3693
5.36M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::make_string_view_from_pointers<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
3685
315M
{
3686
315M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
315M
                                          const CharT*, const CharT*>) {
3688
315M
        return {first, last};
3689
315M
    }
3690
315M
    else {
3691
315M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
315M
    }
3693
315M
}
3694
3695
template <typename CharT>
3696
constexpr auto make_string_view_iterator(
3697
    std::basic_string_view<CharT> sv,
3698
    typename std::basic_string_view<CharT>::iterator it) ->
3699
    typename std::basic_string_view<CharT>::iterator
3700
28.7M
{
3701
28.7M
    if constexpr (std::is_constructible_v<
3702
28.7M
                      typename std::basic_string_view<CharT>::iterator,
3703
28.7M
                      decltype(it)> &&
3704
28.7M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
28.7M
        SCN_UNUSED(sv);
3706
28.7M
        return it;
3707
28.7M
    }
3708
28.7M
    else {
3709
28.7M
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
28.7M
    }
3711
28.7M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator scn::v3::detail::make_string_view_iterator<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3700
28.7M
{
3701
28.7M
    if constexpr (std::is_constructible_v<
3702
28.7M
                      typename std::basic_string_view<CharT>::iterator,
3703
28.7M
                      decltype(it)> &&
3704
28.7M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
28.7M
        SCN_UNUSED(sv);
3706
28.7M
        return it;
3707
28.7M
    }
3708
28.7M
    else {
3709
28.7M
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
28.7M
    }
3711
28.7M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator scn::v3::detail::make_string_view_iterator<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3700
7.26k
{
3701
7.26k
    if constexpr (std::is_constructible_v<
3702
7.26k
                      typename std::basic_string_view<CharT>::iterator,
3703
7.26k
                      decltype(it)> &&
3704
7.26k
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
7.26k
        SCN_UNUSED(sv);
3706
7.26k
        return it;
3707
7.26k
    }
3708
7.26k
    else {
3709
7.26k
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
7.26k
    }
3711
7.26k
}
3712
3713
template <typename CharT>
3714
constexpr auto make_string_view_iterator_from_pointer(
3715
    std::basic_string_view<CharT> sv,
3716
    const CharT* ptr) -> typename std::basic_string_view<CharT>::iterator
3717
{
3718
    if constexpr (std::is_constructible_v<
3719
                      typename std::basic_string_view<CharT>::iterator,
3720
                      const CharT*> &&
3721
                  !SCN_MSVC_DEBUG_ITERATORS) {
3722
        SCN_UNUSED(sv);
3723
        return ptr;
3724
    }
3725
    else {
3726
        return sv.begin() + std::distance(sv.data(), ptr);
3727
    }
3728
}
3729
3730
/////////////////////////////////////////////////////////////////
3731
// Lightweight Unicode facilities
3732
/////////////////////////////////////////////////////////////////
3733
3734
constexpr inline bool is_ascii_code_point(char32_t cp)
3735
0
{
3736
0
    return cp <= 0x7f;
3737
0
}
3738
3739
template <typename U8>
3740
constexpr std::size_t utf8_code_point_length_by_starting_code_unit(U8 ch)
3741
22.4M
{
3742
22.4M
    static_assert(sizeof(U8) == 1);
3743
3744
22.4M
    SCN_GCC_COMPAT_PUSH
3745
22.4M
    SCN_GCC_COMPAT_IGNORE("-Wsign-conversion")
3746
22.4M
    constexpr char lengths[] =
3747
22.4M
        "\1\1\1\1\1\1\1\1"  // highest bit is 0 -> single-byte
3748
22.4M
        "\1\1\1\1\1\1\1\1"
3749
22.4M
        "\0\0\0\0\0\0\0\0"  // highest bits 10 -> error, non-initial
3750
                            // byte
3751
22.4M
        "\2\2\2\2"          // highest bits 110 -> 2-byte cp
3752
22.4M
        "\3\3"              // highest bits 1110 -> 3-byte cp
3753
22.4M
        "\4";               // highest bits 11110 -> 4-byte cp
3754
22.4M
    return lengths[static_cast<unsigned char>(ch) >> 3];
3755
22.4M
    SCN_GCC_COMPAT_POP
3756
22.4M
}
3757
3758
template <typename U16>
3759
constexpr std::size_t utf16_code_point_length_by_starting_code_unit(U16 ch)
3760
{
3761
    static_assert(sizeof(U16) == 2);
3762
3763
    const auto lead = static_cast<uint16_t>(0xffff & ch);
3764
    if (lead >= 0xd800 && lead <= 0xdbff) {
3765
        // high surrogate
3766
        return 2;
3767
    }
3768
    if (lead >= 0xdc00 && lead <= 0xdfff) {
3769
        // unpaired low surrogate
3770
        return 0;
3771
    }
3772
    return 1;
3773
}
3774
3775
template <typename U>
3776
constexpr std::size_t code_point_length_by_starting_code_unit(U ch)
3777
1.43G
{
3778
1.43G
    if constexpr (sizeof(U) == 1) {
3779
1.41G
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
1.41G
    }
3781
1.41G
    else if constexpr (sizeof(U) == 2) {
3782
1.41G
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
1.41G
    }
3784
1.41G
    else {
3785
        // utf-32
3786
1.41G
        static_assert(sizeof(U) == 4);
3787
1.41G
        SCN_UNUSED(ch);
3788
1.41G
        return 1;
3789
1.41G
    }
3790
1.43G
}
unsigned long scn::v3::detail::code_point_length_by_starting_code_unit<char>(char)
Line
Count
Source
3777
22.4M
{
3778
22.4M
    if constexpr (sizeof(U) == 1) {
3779
22.4M
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
22.4M
    }
3781
22.4M
    else if constexpr (sizeof(U) == 2) {
3782
22.4M
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
22.4M
    }
3784
22.4M
    else {
3785
        // utf-32
3786
22.4M
        static_assert(sizeof(U) == 4);
3787
22.4M
        SCN_UNUSED(ch);
3788
22.4M
        return 1;
3789
22.4M
    }
3790
22.4M
}
unsigned long scn::v3::detail::code_point_length_by_starting_code_unit<wchar_t>(wchar_t)
Line
Count
Source
3777
1.41G
{
3778
1.41G
    if constexpr (sizeof(U) == 1) {
3779
1.41G
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
1.41G
    }
3781
1.41G
    else if constexpr (sizeof(U) == 2) {
3782
1.41G
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
1.41G
    }
3784
1.41G
    else {
3785
        // utf-32
3786
1.41G
        static_assert(sizeof(U) == 4);
3787
1.41G
        SCN_UNUSED(ch);
3788
1.41G
        return 1;
3789
1.41G
    }
3790
1.41G
}
3791
3792
inline constexpr char32_t invalid_code_point = 0x110000;
3793
3794
inline constexpr char32_t decode_utf8_code_point_exhaustive(
3795
    std::string_view input)
3796
21.2M
{
3797
21.2M
    SCN_EXPECT(!input.empty() && input.size() <= 4);
3798
3799
21.2M
    const auto is_trailing_code_unit = [](char ch) {
3800
1.80M
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
3801
1.80M
    };
3802
3803
21.2M
    if (input.size() == 1) {
3804
19.8M
        if (static_cast<unsigned char>(input[0]) >= 0x80) {
3805
3.01k
            SCN_UNLIKELY_ATTR
3806
3.01k
            return invalid_code_point;
3807
3.01k
        }
3808
19.8M
        return static_cast<char32_t>(input[0]);
3809
19.8M
    }
3810
3811
1.41M
    if (input.size() == 2) {
3812
1.00M
        if ((static_cast<unsigned char>(input[0]) & 0xe0) != 0xc0) {
3813
295
            SCN_UNLIKELY_ATTR
3814
295
            return invalid_code_point;
3815
295
        }
3816
1.00M
        if (!is_trailing_code_unit(input[1])) {
3817
77.5k
            SCN_UNLIKELY_ATTR
3818
77.5k
            return invalid_code_point;
3819
77.5k
        }
3820
3821
930k
        char32_t cp{};
3822
930k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
3823
930k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
3824
930k
        return cp;
3825
1.00M
    }
3826
3827
407k
    if (input.size() == 3) {
3828
341k
        if ((static_cast<unsigned char>(input[0]) & 0xf0) != 0xe0) {
3829
161
            SCN_UNLIKELY_ATTR
3830
161
            return invalid_code_point;
3831
161
        }
3832
341k
        if (!is_trailing_code_unit(input[1]) ||
3833
341k
            !is_trailing_code_unit(input[2])) {
3834
32.3k
            SCN_UNLIKELY_ATTR
3835
32.3k
            return invalid_code_point;
3836
32.3k
        }
3837
3838
309k
        char32_t cp{};
3839
309k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
3840
309k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
3841
309k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
3842
309k
        return cp;
3843
341k
    }
3844
3845
65.9k
    if (input.size() == 4) {
3846
65.9k
        if ((static_cast<unsigned char>(input[0]) & 0xf8) != 0xf0) {
3847
0
            SCN_UNLIKELY_ATTR
3848
0
            return invalid_code_point;
3849
0
        }
3850
65.9k
        if (static_cast<unsigned char>(input[0]) > 0xf4) {
3851
11.9k
            SCN_UNLIKELY_ATTR
3852
11.9k
            return invalid_code_point;
3853
11.9k
        }
3854
53.9k
        if (!is_trailing_code_unit(input[1]) ||
3855
53.9k
            !is_trailing_code_unit(input[2]) ||
3856
53.9k
            !is_trailing_code_unit(input[3])) {
3857
11.8k
            SCN_UNLIKELY_ATTR
3858
11.8k
            return invalid_code_point;
3859
11.8k
        }
3860
3861
42.0k
        char32_t cp{};
3862
42.0k
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
3863
42.0k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
3864
42.0k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
3865
42.0k
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
3866
42.0k
        return cp;
3867
53.9k
    }
3868
3869
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
3870
    // gcc 7 thinks we'll get here, even when we won't
3871
0
    SCN_EXPECT(false);
3872
0
#endif
3873
0
    SCN_UNREACHABLE;
3874
0
}
3875
3876
inline constexpr char32_t decode_utf8_code_point_exhaustive_valid(
3877
    std::string_view input)
3878
209k
{
3879
209k
    SCN_EXPECT(!input.empty() && input.size() <= 4);
3880
3881
209k
    const auto is_trailing_code_unit = [](char ch) {
3882
22.5k
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
3883
22.5k
    };
3884
3885
209k
    if (input.size() == 1) {
3886
187k
        SCN_EXPECT(static_cast<unsigned char>(input[0]) < 0x80);
3887
187k
        return static_cast<char32_t>(input[0]);
3888
187k
    }
3889
3890
21.4k
    if (input.size() == 2) {
3891
20.5k
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xe0) == 0xc0);
3892
20.5k
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3893
3894
20.5k
        char32_t cp{};
3895
20.5k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
3896
20.5k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
3897
20.5k
        return cp;
3898
20.5k
    }
3899
3900
916
    if (input.size() == 3) {
3901
686
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf0) == 0xe0);
3902
686
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3903
686
        SCN_EXPECT(is_trailing_code_unit(input[2]));
3904
3905
686
        char32_t cp{};
3906
686
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
3907
686
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
3908
686
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
3909
686
        return cp;
3910
686
    }
3911
3912
230
    if (input.size() == 4) {
3913
230
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf8) == 0xf0);
3914
230
        SCN_EXPECT(static_cast<unsigned char>(input[0]) <= 0xf4);
3915
230
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3916
230
        SCN_EXPECT(is_trailing_code_unit(input[2]));
3917
230
        SCN_EXPECT(is_trailing_code_unit(input[3]));
3918
3919
230
        char32_t cp{};
3920
230
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
3921
230
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
3922
230
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
3923
230
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
3924
230
        return cp;
3925
230
    }
3926
3927
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
3928
    // gcc 7 thinks we'll get here, even when we won't
3929
0
    SCN_EXPECT(false);
3930
0
#endif
3931
0
    SCN_UNREACHABLE;
3932
0
}
3933
3934
template <typename CharT>
3935
inline constexpr char32_t decode_utf16_code_point_exhaustive(
3936
    std::basic_string_view<CharT> input)
3937
{
3938
    static_assert(sizeof(CharT) == 2);
3939
3940
    SCN_EXPECT(!input.empty() && input.size() <= 2);
3941
3942
    if (input.size() == 1) {
3943
        return static_cast<char32_t>(input[0]);
3944
    }
3945
3946
    const auto lead = static_cast<uint32_t>(input[0]);
3947
    const auto trail = static_cast<uint32_t>(input[1]);
3948
    if (lead < 0xd800 || lead > 0xdbff || trail < 0xdc00 || trail > 0xdfff) {
3949
        SCN_UNLIKELY_ATTR
3950
        return invalid_code_point;
3951
    }
3952
3953
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
3954
    return static_cast<char32_t>(cp + 0x10000);
3955
}
3956
3957
template <typename CharT>
3958
inline constexpr char32_t decode_utf16_code_point_exhaustive_valid(
3959
    std::basic_string_view<CharT> input)
3960
{
3961
    static_assert(sizeof(CharT) == 2);
3962
3963
    SCN_EXPECT(!input.empty() && input.size() <= 2);
3964
3965
    if (input.size() == 1) {
3966
        return static_cast<char32_t>(input[0]);
3967
    }
3968
3969
    const auto lead = static_cast<uint32_t>(input[0]);
3970
    const auto trail = static_cast<uint32_t>(input[1]);
3971
    SCN_EXPECT(lead >= 0xd800);
3972
    SCN_EXPECT(lead <= 0xdbff);
3973
    SCN_EXPECT(trail >= 0xdc00);
3974
    SCN_EXPECT(trail <= 0xdfff);
3975
3976
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
3977
    return static_cast<char32_t>(cp + 0x10000);
3978
}
3979
3980
template <typename CharT>
3981
inline constexpr char32_t decode_code_point_exhaustive(
3982
    std::basic_string_view<CharT> input)
3983
1.43G
{
3984
1.43G
    if constexpr (sizeof(CharT) == 1) {
3985
1.41G
        return decode_utf8_code_point_exhaustive(input);
3986
1.41G
    }
3987
1.41G
    else if constexpr (sizeof(CharT) == 2) {
3988
1.41G
        return decode_utf16_code_point_exhaustive(input);
3989
1.41G
    }
3990
1.41G
    else {
3991
1.41G
        SCN_EXPECT(input.size() == 1);
3992
1.41G
        auto cp = static_cast<char32_t>(input.front());
3993
1.41G
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
1.73M
            return invalid_code_point;
3995
1.73M
        }
3996
1.41G
        return cp;
3997
1.41G
    }
3998
1.43G
}
char32_t scn::v3::detail::decode_code_point_exhaustive<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
3983
21.2M
{
3984
21.2M
    if constexpr (sizeof(CharT) == 1) {
3985
21.2M
        return decode_utf8_code_point_exhaustive(input);
3986
21.2M
    }
3987
21.2M
    else if constexpr (sizeof(CharT) == 2) {
3988
21.2M
        return decode_utf16_code_point_exhaustive(input);
3989
21.2M
    }
3990
21.2M
    else {
3991
21.2M
        SCN_EXPECT(input.size() == 1);
3992
21.2M
        auto cp = static_cast<char32_t>(input.front());
3993
21.2M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
21.2M
            return invalid_code_point;
3995
21.2M
        }
3996
21.2M
        return cp;
3997
21.2M
    }
3998
21.2M
}
char32_t scn::v3::detail::decode_code_point_exhaustive<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
3983
1.41G
{
3984
1.41G
    if constexpr (sizeof(CharT) == 1) {
3985
1.41G
        return decode_utf8_code_point_exhaustive(input);
3986
1.41G
    }
3987
1.41G
    else if constexpr (sizeof(CharT) == 2) {
3988
1.41G
        return decode_utf16_code_point_exhaustive(input);
3989
1.41G
    }
3990
1.41G
    else {
3991
1.41G
        SCN_EXPECT(input.size() == 1);
3992
1.41G
        auto cp = static_cast<char32_t>(input.front());
3993
1.41G
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
1.73M
            return invalid_code_point;
3995
1.73M
        }
3996
1.41G
        return cp;
3997
1.41G
    }
3998
1.41G
}
3999
4000
template <typename CharT>
4001
inline constexpr char32_t decode_code_point_exhaustive_valid(
4002
    std::basic_string_view<CharT> input)
4003
209k
{
4004
209k
    if constexpr (sizeof(CharT) == 1) {
4005
0
        return decode_utf8_code_point_exhaustive_valid(input);
4006
0
    }
4007
0
    else if constexpr (sizeof(CharT) == 2) {
4008
0
        return decode_utf16_code_point_exhaustive_valid(input);
4009
0
    }
4010
0
    else {
4011
0
        SCN_EXPECT(input.size() == 1);
4012
0
        return static_cast<char32_t>(input.front());
4013
0
    }
4014
209k
}
char32_t scn::v3::detail::decode_code_point_exhaustive_valid<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4003
209k
{
4004
209k
    if constexpr (sizeof(CharT) == 1) {
4005
209k
        return decode_utf8_code_point_exhaustive_valid(input);
4006
209k
    }
4007
209k
    else if constexpr (sizeof(CharT) == 2) {
4008
209k
        return decode_utf16_code_point_exhaustive_valid(input);
4009
209k
    }
4010
209k
    else {
4011
209k
        SCN_EXPECT(input.size() == 1);
4012
209k
        return static_cast<char32_t>(input.front());
4013
209k
    }
4014
209k
}
Unexecuted instantiation: char32_t scn::v3::detail::decode_code_point_exhaustive_valid<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4015
4016
}  // namespace detail
4017
4018
/////////////////////////////////////////////////////////////////
4019
// scan_buffer
4020
/////////////////////////////////////////////////////////////////
4021
4022
namespace detail {
4023
template <typename CharT>
4024
class basic_scan_buffer {
4025
public:
4026
    class forward_iterator;
4027
4028
    using char_type = CharT;
4029
    using range_type =
4030
        ranges::subrange<forward_iterator, ranges::default_sentinel_t>;
4031
4032
    basic_scan_buffer(const basic_scan_buffer&) = delete;
4033
    basic_scan_buffer& operator=(const basic_scan_buffer&) = delete;
4034
    basic_scan_buffer(basic_scan_buffer&&) = delete;
4035
    basic_scan_buffer& operator=(basic_scan_buffer&&) = delete;
4036
25.0M
    virtual ~basic_scan_buffer() = default;
scn::v3::detail::basic_scan_buffer<char>::~basic_scan_buffer()
Line
Count
Source
4036
4.73M
    virtual ~basic_scan_buffer() = default;
scn::v3::detail::basic_scan_buffer<wchar_t>::~basic_scan_buffer()
Line
Count
Source
4036
20.2M
    virtual ~basic_scan_buffer() = default;
4037
4038
    virtual bool fill() = 0;
4039
4040
    virtual void sync(std::ptrdiff_t position)
4041
25.0M
    {
4042
25.0M
        SCN_UNUSED(position);
4043
25.0M
    }
scn::v3::detail::basic_scan_buffer<char>::sync(long)
Line
Count
Source
4041
4.73M
    {
4042
4.73M
        SCN_UNUSED(position);
4043
4.73M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::sync(long)
Line
Count
Source
4041
20.2M
    {
4042
20.2M
        SCN_UNUSED(position);
4043
20.2M
    }
4044
4045
    void sync_all()
4046
1.10M
    {
4047
1.10M
        sync(0);
4048
1.10M
    }
scn::v3::detail::basic_scan_buffer<char>::sync_all()
Line
Count
Source
4046
369k
    {
4047
369k
        sync(0);
4048
369k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::sync_all()
Line
Count
Source
4046
738k
    {
4047
738k
        sync(0);
4048
738k
    }
4049
4050
    SCN_NODISCARD std::ptrdiff_t chars_available() const
4051
198G
    {
4052
198G
        return m_putback_buffer.size() + m_current_view.size();
4053
198G
    }
scn::v3::detail::basic_scan_buffer<char>::chars_available() const
Line
Count
Source
4051
427M
    {
4052
427M
        return m_putback_buffer.size() + m_current_view.size();
4053
427M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::chars_available() const
Line
Count
Source
4051
198G
    {
4052
198G
        return m_putback_buffer.size() + m_current_view.size();
4053
198G
    }
4054
4055
    SCN_NODISCARD std::basic_string_view<CharT> current_view() const
4056
0
    {
4057
0
        return m_current_view;
4058
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::current_view() const
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::current_view() const
4059
4060
    SCN_NODISCARD std::basic_string<CharT>& putback_buffer()
4061
0
    {
4062
0
        return m_putback_buffer;
4063
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::putback_buffer()
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::putback_buffer()
4064
    SCN_NODISCARD const std::basic_string<CharT>& putback_buffer() const
4065
    {
4066
        return m_putback_buffer;
4067
    }
4068
4069
    SCN_NODISCARD std::basic_string_view<CharT> get_segment_starting_at(
4070
        std::ptrdiff_t pos) const
4071
76.3M
    {
4072
76.3M
        if (SCN_UNLIKELY(
4073
76.3M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
45.4M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
45.4M
        }
4076
30.9M
        const auto start = pos - m_putback_buffer.size();
4077
30.9M
        SCN_EXPECT(start <= m_current_view.size());
4078
30.9M
        return m_current_view.substr(start);
4079
30.9M
    }
scn::v3::detail::basic_scan_buffer<char>::get_segment_starting_at(long) const
Line
Count
Source
4071
17.0M
    {
4072
17.0M
        if (SCN_UNLIKELY(
4073
17.0M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
6.34M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
6.34M
        }
4076
10.7M
        const auto start = pos - m_putback_buffer.size();
4077
10.7M
        SCN_EXPECT(start <= m_current_view.size());
4078
10.7M
        return m_current_view.substr(start);
4079
10.7M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::get_segment_starting_at(long) const
Line
Count
Source
4071
59.2M
    {
4072
59.2M
        if (SCN_UNLIKELY(
4073
59.2M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
39.1M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
39.1M
        }
4076
20.1M
        const auto start = pos - m_putback_buffer.size();
4077
20.1M
        SCN_EXPECT(start <= m_current_view.size());
4078
20.1M
        return m_current_view.substr(start);
4079
20.1M
    }
4080
4081
    SCN_NODISCARD CharT get_character_at(std::ptrdiff_t pos) const
4082
644M
    {
4083
644M
        if (SCN_UNLIKELY(
4084
644M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
307M
            return m_putback_buffer[pos];
4086
307M
        }
4087
336M
        const auto start = pos - m_putback_buffer.size();
4088
336M
        SCN_EXPECT(start < m_current_view.size());
4089
336M
        return m_current_view[start];
4090
336M
    }
scn::v3::detail::basic_scan_buffer<char>::get_character_at(long) const
Line
Count
Source
4082
94.1M
    {
4083
94.1M
        if (SCN_UNLIKELY(
4084
94.1M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
59.4M
            return m_putback_buffer[pos];
4086
59.4M
        }
4087
34.6M
        const auto start = pos - m_putback_buffer.size();
4088
34.6M
        SCN_EXPECT(start < m_current_view.size());
4089
34.6M
        return m_current_view[start];
4090
34.6M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::get_character_at(long) const
Line
Count
Source
4082
550M
    {
4083
550M
        if (SCN_UNLIKELY(
4084
550M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
248M
            return m_putback_buffer[pos];
4086
248M
        }
4087
301M
        const auto start = pos - m_putback_buffer.size();
4088
301M
        SCN_EXPECT(start < m_current_view.size());
4089
301M
        return m_current_view[start];
4090
301M
    }
4091
4092
    SCN_NODISCARD bool is_contiguous() const
4093
75.1M
    {
4094
75.1M
        return m_is_contiguous;
4095
75.1M
    }
scn::v3::detail::basic_scan_buffer<char>::is_contiguous() const
Line
Count
Source
4093
14.2M
    {
4094
14.2M
        return m_is_contiguous;
4095
14.2M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::is_contiguous() const
Line
Count
Source
4093
60.8M
    {
4094
60.8M
        return m_is_contiguous;
4095
60.8M
    }
4096
4097
    SCN_NODISCARD auto get_contiguous() const
4098
0
    {
4099
0
        SCN_EXPECT(is_contiguous());
4100
0
        return ranges::subrange<const CharT*>{
4101
0
            current_view().data(),
4102
0
            current_view().data() + current_view().size()};
4103
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::get_contiguous() const
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::get_contiguous() const
4104
4105
    SCN_NODISCARD range_type get();
4106
4107
protected:
4108
    friend class forward_iterator;
4109
4110
    struct contiguous_tag {};
4111
    struct non_contiguous_tag {};
4112
4113
    basic_scan_buffer(contiguous_tag, std::basic_string_view<char_type> sv)
4114
        : m_current_view(sv), m_is_contiguous(true)
4115
0
    {
4116
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<char>::contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<wchar_t>::contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4117
4118
    basic_scan_buffer(non_contiguous_tag,
4119
                      std::basic_string_view<char_type> sv = {})
4120
        : m_current_view(sv), m_is_contiguous(false)
4121
25.0M
    {
4122
25.0M
    }
scn::v3::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<char>::non_contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4121
4.73M
    {
4122
4.73M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<wchar_t>::non_contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4121
20.2M
    {
4122
20.2M
    }
4123
4124
    basic_scan_buffer(bool is_contiguous, std::basic_string_view<char_type> sv)
4125
        : m_current_view(sv), m_is_contiguous(is_contiguous)
4126
    {
4127
    }
4128
4129
    std::basic_string_view<char_type> m_current_view{};
4130
    std::basic_string<char_type> m_putback_buffer{};
4131
    bool m_is_contiguous{false};
4132
};
4133
4134
template <typename CharT>
4135
class basic_scan_buffer<CharT>::forward_iterator {
4136
public:
4137
    using value_type = CharT;
4138
    using reference = CharT;
4139
    using pointer = CharT*;
4140
    using difference_type = std::ptrdiff_t;
4141
    using iterator_category = std::forward_iterator_tag;
4142
4143
    forward_iterator() = default;
4144
4145
    forward_iterator(basic_scan_buffer<CharT>* parent, std::ptrdiff_t pos)
4146
        : m_begin(parent), m_end(nullptr), m_position(pos)
4147
25.0M
    {
4148
25.0M
        SCN_EXPECT(parent);
4149
25.0M
        SCN_EXPECT(!parent->is_contiguous());
4150
25.0M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(scn::v3::detail::basic_scan_buffer<char>*, long)
Line
Count
Source
4147
4.73M
    {
4148
4.73M
        SCN_EXPECT(parent);
4149
4.73M
        SCN_EXPECT(!parent->is_contiguous());
4150
4.73M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(scn::v3::detail::basic_scan_buffer<wchar_t>*, long)
Line
Count
Source
4147
20.2M
    {
4148
20.2M
        SCN_EXPECT(parent);
4149
20.2M
        SCN_EXPECT(!parent->is_contiguous());
4150
20.2M
    }
4151
4152
    forward_iterator(std::basic_string_view<CharT> view, std::ptrdiff_t pos)
4153
        : m_begin(const_cast<CharT*>(view.data())),
4154
          m_end(const_cast<CharT*>(view.data() + view.size())),
4155
          m_position(pos)
4156
0
    {
4157
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(std::__1::basic_string_view<char, std::__1::char_traits<char> >, long)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, long)
4158
4159
    std::ptrdiff_t position() const
4160
101M
    {
4161
101M
        return m_position;
4162
101M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::position() const
Line
Count
Source
4160
29.2M
    {
4161
29.2M
        return m_position;
4162
29.2M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::position() const
Line
Count
Source
4160
71.9M
    {
4161
71.9M
        return m_position;
4162
71.9M
    }
4163
4164
    bool stores_parent() const
4165
397G
    {
4166
397G
        return m_end == nullptr;
4167
397G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::stores_parent() const
Line
Count
Source
4165
1.03G
    {
4166
1.03G
        return m_end == nullptr;
4167
1.03G
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::stores_parent() const
Line
Count
Source
4165
396G
    {
4166
396G
        return m_end == nullptr;
4167
396G
    }
4168
4169
    basic_scan_buffer<CharT>* parent()
4170
8.99M
    {
4171
8.99M
        SCN_EXPECT(stores_parent());
4172
8.99M
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
8.99M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::parent()
Line
Count
Source
4170
8.02M
    {
4171
8.02M
        SCN_EXPECT(stores_parent());
4172
8.02M
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
8.02M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent()
Line
Count
Source
4170
966k
    {
4171
966k
        SCN_EXPECT(stores_parent());
4172
966k
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
966k
    }
4174
    const basic_scan_buffer<CharT>* parent() const
4175
199G
    {
4176
199G
        SCN_EXPECT(stores_parent());
4177
199G
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
199G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::parent() const
Line
Count
Source
4175
574M
    {
4176
574M
        SCN_EXPECT(stores_parent());
4177
574M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
574M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent() const
Line
Count
Source
4175
198G
    {
4176
198G
        SCN_EXPECT(stores_parent());
4177
198G
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
198G
    }
4179
4180
    std::basic_string_view<CharT> contiguous_segment() const
4181
76.3M
    {
4182
76.3M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
76.3M
        return parent()->get_segment_starting_at(position());
4188
76.3M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::contiguous_segment() const
Line
Count
Source
4181
17.0M
    {
4182
17.0M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
17.0M
        return parent()->get_segment_starting_at(position());
4188
17.0M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::contiguous_segment() const
Line
Count
Source
4181
59.2M
    {
4182
59.2M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
59.2M
        return parent()->get_segment_starting_at(position());
4188
59.2M
    }
4189
    auto to_contiguous_segment_iterator() const
4190
    {
4191
        return contiguous_segment().data();
4192
    }
4193
4194
    forward_iterator& operator++()
4195
196G
    {
4196
196G
        ++m_position;
4197
196G
        (void)read_at_position();
4198
196G
        return *this;
4199
196G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::operator++()
Line
Count
Source
4195
156M
    {
4196
156M
        ++m_position;
4197
156M
        (void)read_at_position();
4198
156M
        return *this;
4199
156M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator++()
Line
Count
Source
4195
196G
    {
4196
196G
        ++m_position;
4197
196G
        (void)read_at_position();
4198
196G
        return *this;
4199
196G
    }
4200
4201
    forward_iterator operator++(int)
4202
    {
4203
        auto copy = *this;
4204
        operator++();
4205
        return copy;
4206
    }
4207
4208
    CharT operator*() const
4209
644M
    {
4210
644M
        SCN_EXPECT(m_begin);
4211
4212
644M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
644M
        auto res = read_at_position();
4219
644M
        SCN_EXPECT(res);
4220
644M
        return parent()->get_character_at(m_position);
4221
644M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::operator*() const
Line
Count
Source
4209
94.1M
    {
4210
94.1M
        SCN_EXPECT(m_begin);
4211
4212
94.1M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
94.1M
        auto res = read_at_position();
4219
94.1M
        SCN_EXPECT(res);
4220
94.1M
        return parent()->get_character_at(m_position);
4221
94.1M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator*() const
Line
Count
Source
4209
550M
    {
4210
550M
        SCN_EXPECT(m_begin);
4211
4212
550M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
550M
        auto res = read_at_position();
4219
550M
        SCN_EXPECT(res);
4220
550M
        return parent()->get_character_at(m_position);
4221
550M
    }
4222
4223
    forward_iterator& batch_advance(std::ptrdiff_t n)
4224
165k
    {
4225
165k
        SCN_EXPECT(n >= 0);
4226
165k
        m_position += n;
4227
165k
        return *this;
4228
165k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::batch_advance(long)
Line
Count
Source
4224
165k
    {
4225
165k
        SCN_EXPECT(n >= 0);
4226
165k
        m_position += n;
4227
165k
        return *this;
4228
165k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance(long)
Line
Count
Source
4224
260
    {
4225
260
        SCN_EXPECT(n >= 0);
4226
260
        m_position += n;
4227
260
        return *this;
4228
260
    }
4229
4230
    forward_iterator& batch_advance_to(std::ptrdiff_t i)
4231
0
    {
4232
0
        SCN_EXPECT(i >= m_position);
4233
0
        m_position = i;
4234
0
        return *this;
4235
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator::batch_advance_to(long)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance_to(long)
4236
4237
    friend bool operator==(const forward_iterator& lhs,
4238
                           const forward_iterator& rhs)
4239
196G
    {
4240
196G
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
196G
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4239
85.9M
    {
4240
85.9M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
85.9M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4239
196G
    {
4240
196G
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
196G
    }
4242
    friend bool operator!=(const forward_iterator& lhs,
4243
                           const forward_iterator& rhs)
4244
196G
    {
4245
196G
        return !(lhs == rhs);
4246
196G
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4244
78.2M
    {
4245
78.2M
        return !(lhs == rhs);
4246
78.2M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4244
196G
    {
4245
196G
        return !(lhs == rhs);
4246
196G
    }
4247
4248
    friend bool operator==(const forward_iterator& x,
4249
                           ranges::default_sentinel_t)
4250
293M
    {
4251
293M
        return x.is_at_end();
4252
293M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4250
34.5M
    {
4251
34.5M
        return x.is_at_end();
4252
34.5M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4250
259M
    {
4251
259M
        return x.is_at_end();
4252
259M
    }
4253
    friend bool operator==(ranges::default_sentinel_t,
4254
                           const forward_iterator& x)
4255
    {
4256
        return x.is_at_end();
4257
    }
4258
4259
    friend bool operator!=(const forward_iterator& x,
4260
                           ranges::default_sentinel_t)
4261
375M
    {
4262
375M
        return !x.is_at_end();
4263
375M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4261
46.5M
    {
4262
46.5M
        return !x.is_at_end();
4263
46.5M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4261
329M
    {
4262
329M
        return !x.is_at_end();
4263
329M
    }
4264
    friend bool operator!=(ranges::default_sentinel_t,
4265
                           const forward_iterator& x)
4266
    {
4267
        return !x.is_at_end();
4268
    }
4269
4270
private:
4271
    friend class basic_scan_buffer<CharT>;
4272
4273
    SCN_NODISCARD bool read_at_position() const
4274
197G
    {
4275
197G
        SCN_EXPECT(m_begin);
4276
4277
197G
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
197G
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
197G
            return true;
4283
197G
        }
4284
4285
731M
        while (m_position >= parent()->chars_available()) {
4286
366M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
1.05M
                return false;
4288
1.05M
            }
4289
366M
        }
4290
365M
        return true;
4291
366M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::read_at_position() const
Line
Count
Source
4274
331M
    {
4275
331M
        SCN_EXPECT(m_begin);
4276
4277
331M
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
331M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
287M
            return true;
4283
287M
        }
4284
4285
87.1M
        while (m_position >= parent()->chars_available()) {
4286
43.9M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
718k
                return false;
4288
718k
            }
4289
43.9M
        }
4290
43.2M
        return true;
4291
43.9M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::read_at_position() const
Line
Count
Source
4274
197G
    {
4275
197G
        SCN_EXPECT(m_begin);
4276
4277
197G
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
197G
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
197G
            return true;
4283
197G
        }
4284
4285
644M
        while (m_position >= parent()->chars_available()) {
4286
322M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
331k
                return false;
4288
331k
            }
4289
322M
        }
4290
322M
        return true;
4291
322M
    }
4292
4293
    SCN_NODISCARD bool is_at_end() const
4294
669M
    {
4295
669M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
669M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
669M
        return !read_at_position();
4302
669M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::is_at_end() const
Line
Count
Source
4294
81.1M
    {
4295
81.1M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
81.1M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
81.1M
        return !read_at_position();
4302
81.1M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::is_at_end() const
Line
Count
Source
4294
588M
    {
4295
588M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
588M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
588M
        return !read_at_position();
4302
588M
    }
4303
4304
    // If m_end is null, m_begin points to the parent scan_buffer
4305
    // Otherwise, [m_begin, m_end) is the range of this iterator (and of
4306
    // the entire range)
4307
    mutable void* m_begin{nullptr};
4308
    mutable void* m_end{nullptr};
4309
    std::ptrdiff_t m_position{0};
4310
};
4311
4312
template <typename CharT>
4313
SCN_NODISCARD auto basic_scan_buffer<CharT>::get() -> range_type
4314
25.0M
{
4315
25.0M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
25.0M
    return ranges::subrange{forward_iterator{this, 0},
4320
25.0M
                            ranges::default_sentinel};
4321
25.0M
}
scn::v3::detail::basic_scan_buffer<char>::get()
Line
Count
Source
4314
4.73M
{
4315
4.73M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
4.73M
    return ranges::subrange{forward_iterator{this, 0},
4320
4.73M
                            ranges::default_sentinel};
4321
4.73M
}
scn::v3::detail::basic_scan_buffer<wchar_t>::get()
Line
Count
Source
4314
20.2M
{
4315
20.2M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
20.2M
    return ranges::subrange{forward_iterator{this, 0},
4320
20.2M
                            ranges::default_sentinel};
4321
20.2M
}
4322
4323
static_assert(ranges::forward_range<scan_buffer::range_type>);
4324
4325
template <typename CharT>
4326
class basic_scan_string_buffer : public basic_scan_buffer<CharT> {
4327
    using base = basic_scan_buffer<CharT>;
4328
4329
public:
4330
    basic_scan_string_buffer(std::basic_string_view<CharT> sv)
4331
        : base(typename base::contiguous_tag{}, sv)
4332
0
    {
4333
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<char>::basic_scan_string_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<wchar_t>::basic_scan_string_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4334
4335
    bool fill() override
4336
0
    {
4337
0
        SCN_EXPECT(false);
4338
0
        SCN_UNREACHABLE;
4339
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<char>::fill()
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<wchar_t>::fill()
4340
};
4341
4342
template <typename CharT>
4343
basic_scan_string_buffer(std::basic_string_view<CharT>)
4344
    -> basic_scan_string_buffer<CharT>;
4345
4346
template <typename CharT>
4347
class basic_scan_forward_buffer_base : public basic_scan_buffer<CharT> {
4348
    using base = basic_scan_buffer<CharT>;
4349
4350
protected:
4351
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4352
25.0M
    {
4353
25.0M
    }
scn::v3::detail::basic_scan_forward_buffer_base<char>::basic_scan_forward_buffer_base()
Line
Count
Source
4352
4.73M
    {
4353
4.73M
    }
scn::v3::detail::basic_scan_forward_buffer_base<wchar_t>::basic_scan_forward_buffer_base()
Line
Count
Source
4352
20.2M
    {
4353
20.2M
    }
4354
};
4355
4356
template <typename Range>
4357
class basic_scan_forward_buffer_impl
4358
    : public basic_scan_forward_buffer_base<detail::char_t<Range>> {
4359
    static_assert(ranges::range<const Range> && std::is_object_v<Range>);
4360
4361
    using _char_type = detail::char_t<Range>;
4362
    using base = basic_scan_forward_buffer_base<_char_type>;
4363
4364
public:
4365
    using char_type = _char_type;
4366
    using range_type = Range;
4367
    using iterator = ranges::iterator_t<const Range>;
4368
    using sentinel = ranges::sentinel_t<const Range>;
4369
4370
    template <
4371
        typename R,
4372
        std::enable_if_t<is_not_self<R, basic_scan_forward_buffer_impl> &&
4373
                         std::is_convertible_v<R, const Range&>>* = nullptr>
4374
    basic_scan_forward_buffer_impl(R&& r)
4375
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4376
          m_cursor(ranges::begin(*m_range))
4377
25.0M
    {
4378
25.0M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4377
4.73M
    {
4378
4.73M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4377
20.2M
    {
4378
20.2M
    }
4379
4380
    bool fill() override
4381
366M
    {
4382
366M
        if (m_cursor == ranges::end(*m_range)) {
4383
1.05M
            return false;
4384
1.05M
        }
4385
365M
        if (!this->m_current_view.empty()) {
4386
340M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
340M
                                          this->m_current_view.begin(),
4388
340M
                                          this->m_current_view.end());
4389
340M
        }
4390
365M
        m_latest = *m_cursor;
4391
365M
        ++m_cursor;
4392
365M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
365M
        return true;
4394
366M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::fill()
Line
Count
Source
4381
43.9M
    {
4382
43.9M
        if (m_cursor == ranges::end(*m_range)) {
4383
718k
            return false;
4384
718k
        }
4385
43.2M
        if (!this->m_current_view.empty()) {
4386
38.6M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
38.6M
                                          this->m_current_view.begin(),
4388
38.6M
                                          this->m_current_view.end());
4389
38.6M
        }
4390
43.2M
        m_latest = *m_cursor;
4391
43.2M
        ++m_cursor;
4392
43.2M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
43.2M
        return true;
4394
43.9M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::fill()
Line
Count
Source
4381
322M
    {
4382
322M
        if (m_cursor == ranges::end(*m_range)) {
4383
331k
            return false;
4384
331k
        }
4385
322M
        if (!this->m_current_view.empty()) {
4386
301M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
301M
                                          this->m_current_view.begin(),
4388
301M
                                          this->m_current_view.end());
4389
301M
        }
4390
322M
        m_latest = *m_cursor;
4391
322M
        ++m_cursor;
4392
322M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
322M
        return true;
4394
322M
    }
4395
4396
private:
4397
    const Range* m_range;
4398
    iterator m_cursor;
4399
    char_type m_latest{};
4400
};
4401
4402
template <typename R>
4403
basic_scan_forward_buffer_impl(const R&) -> basic_scan_forward_buffer_impl<R>;
4404
4405
class scan_file_buffer : public basic_scan_buffer<char> {
4406
    using base = basic_scan_buffer<char>;
4407
4408
public:
4409
    scan_file_buffer(std::FILE* file);
4410
    ~scan_file_buffer();
4411
4412
    bool fill() override;
4413
    void sync(std::ptrdiff_t position) override;
4414
4415
private:
4416
    std::FILE* m_file;
4417
    std::optional<char_type> m_latest{std::nullopt};
4418
};
4419
4420
template <typename CharT>
4421
class basic_scan_ref_buffer : public basic_scan_buffer<CharT> {
4422
    using base = basic_scan_buffer<CharT>;
4423
4424
public:
4425
    basic_scan_ref_buffer(base& other, std::ptrdiff_t starting_pos)
4426
        : base(other.is_contiguous(), std::basic_string_view<CharT>{}),
4427
          m_other(&other),
4428
          m_starting_pos(starting_pos)
4429
    {
4430
        this->m_current_view = other.get_segment_starting_at(starting_pos);
4431
        m_fill_needs_to_propagate = other.get_segment_starting_at(0).end() ==
4432
                                    this->m_current_view.end();
4433
    }
4434
4435
    basic_scan_ref_buffer(std::basic_string_view<CharT> view)
4436
        : base(true, view), m_other(nullptr)
4437
    {
4438
    }
4439
4440
    bool fill() override
4441
0
    {
4442
0
        if (!m_other) {
4443
0
            return false;
4444
0
        }
4445
0
        SCN_EXPECT(m_starting_pos >= 0);
4446
0
4447
0
        if (m_fill_needs_to_propagate) {
4448
0
            auto ret = m_other->fill();
4449
0
            this->m_current_view = m_other->current_view();
4450
0
            this->m_putback_buffer =
4451
0
                m_other->putback_buffer().substr(m_starting_pos);
4452
0
            return ret;
4453
0
        }
4454
0
4455
0
        m_fill_needs_to_propagate = true;
4456
0
        this->m_putback_buffer = std::basic_string<CharT>{this->m_current_view};
4457
0
        this->m_current_view = m_other->current_view();
4458
0
        return true;
4459
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_ref_buffer<char>::fill()
Unexecuted instantiation: scn::v3::detail::basic_scan_ref_buffer<wchar_t>::fill()
4460
4461
private:
4462
    base* m_other;
4463
    std::ptrdiff_t m_starting_pos{-1};
4464
    bool m_fill_needs_to_propagate{false};
4465
};
4466
4467
template <typename CharT>
4468
basic_scan_ref_buffer(basic_scan_buffer<CharT>&, std::ptrdiff_t)
4469
    -> basic_scan_ref_buffer<CharT>;
4470
4471
template <typename CharT>
4472
basic_scan_ref_buffer(std::basic_string_view<CharT>)
4473
    -> basic_scan_ref_buffer<CharT>;
4474
4475
template <typename Range>
4476
auto make_string_scan_buffer(const Range& range)
4477
{
4478
    return basic_scan_string_buffer(
4479
        std::basic_string_view{ranges::data(range), ranges::size(range)});
4480
}
4481
4482
template <typename Range>
4483
auto make_forward_scan_buffer(const Range& range)
4484
25.0M
{
4485
25.0M
    return basic_scan_forward_buffer_impl(range);
4486
25.0M
}
auto scn::v3::detail::make_forward_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4484
4.73M
{
4485
4.73M
    return basic_scan_forward_buffer_impl(range);
4486
4.73M
}
auto scn::v3::detail::make_forward_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4484
20.2M
{
4485
20.2M
    return basic_scan_forward_buffer_impl(range);
4486
20.2M
}
4487
4488
inline auto make_file_scan_buffer(std::FILE* file)
4489
0
{
4490
0
    return scan_file_buffer(file);
4491
0
}
4492
}  // namespace detail
4493
4494
/////////////////////////////////////////////////////////////////
4495
// make_scan_buffer
4496
/////////////////////////////////////////////////////////////////
4497
4498
/**
4499
 * \defgroup scannable Scannable sources
4500
 *
4501
 * \brief Description of the `scannable_range` and `scannable_source`
4502
 * concepts.
4503
 *
4504
 * A range is considered scannable, if it models at least `forward_range`,
4505
 * and its character type is correct (its value type is the same as the one
4506
 * of the format string).
4507
 * If the range additionally models `contiguous_range` and `sized_range`,
4508
 * additional optimizations are enabled.
4509
 *
4510
 * \code{.cpp}
4511
 * // Exposition only
4512
 * template <typename Range, typename CharT>
4513
 * concept scannable_range =
4514
 *     ranges::forward_range<Range> &&
4515
 *     std::same_as<ranges::range_value_t<Range>, CharT>;
4516
 * \endcode
4517
 *
4518
 * Additionally, files (`std::FILE*`) can be scanned from.
4519
 * Files are always considered to be narrow (`char`-oriented).
4520
 * Thus, the entire concept is:
4521
 *
4522
 * \code{.cpp}
4523
 * // Exposition only
4524
 * template <typename Source, typename CharT>
4525
 * concept scannable_source =
4526
 *   (std::same_as<std::remove_cvref_t<Source>, std::FILE*> &&
4527
 *    std::same_as<CharT, char>) ||
4528
 *   scannable_range<Source, CharT>;
4529
 * \endcode
4530
 */
4531
4532
/**
4533
 * Tag type to indicate an invalid range given to `scn::scan`
4534
 *
4535
 * \ingroup scannable
4536
 */
4537
struct invalid_input_range {};
4538
4539
struct invalid_char_type : invalid_input_range {};
4540
struct custom_char_traits : invalid_input_range {};
4541
struct file_marker_found : invalid_input_range {};
4542
struct insufficient_range : invalid_input_range {};
4543
4544
namespace detail {
4545
template <typename CharT>
4546
inline constexpr bool is_valid_char_type =
4547
    std::is_same_v<std::remove_const_t<CharT>, char> ||
4548
    std::is_same_v<std::remove_const_t<CharT>, wchar_t>;
4549
4550
namespace _make_scan_buffer {
4551
// buffer -> ref_buffer
4552
inline auto impl(scan_buffer::range_type r, priority_tag<4>) noexcept
4553
    -> basic_scan_ref_buffer<char>
4554
0
{
4555
0
    if (!r.begin().stores_parent()) {
4556
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4557
0
    }
4558
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4559
0
}
4560
inline auto impl(wscan_buffer::range_type r, priority_tag<4>) noexcept
4561
    -> basic_scan_ref_buffer<wchar_t>
4562
0
{
4563
0
    if (!r.begin().stores_parent()) {
4564
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4565
0
    }
4566
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4567
0
}
4568
4569
// string_view -> string_buffer
4570
template <typename CharT>
4571
auto impl(std::basic_string_view<CharT> r, priority_tag<3>) noexcept
4572
216k
{
4573
216k
    if constexpr (is_valid_char_type<CharT>) {
4574
216k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
216k
    }
4577
216k
    else {
4578
216k
        return invalid_char_type{};
4579
216k
    }
4580
216k
}
auto scn::v3::detail::_make_scan_buffer::impl<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::detail::priority_tag<3ul>)
Line
Count
Source
4572
72.2k
{
4573
72.2k
    if constexpr (is_valid_char_type<CharT>) {
4574
72.2k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
72.2k
    }
4577
72.2k
    else {
4578
72.2k
        return invalid_char_type{};
4579
72.2k
    }
4580
72.2k
}
auto scn::v3::detail::_make_scan_buffer::impl<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::detail::priority_tag<3ul>)
Line
Count
Source
4572
144k
{
4573
144k
    if constexpr (is_valid_char_type<CharT>) {
4574
144k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
144k
    }
4577
144k
    else {
4578
144k
        return invalid_char_type{};
4579
144k
    }
4580
144k
}
4581
4582
// string& -> string_buffer
4583
template <typename CharT, typename Traits, typename Allocator>
4584
auto impl(const std::basic_string<CharT, Traits, Allocator>& r,
4585
          priority_tag<3>) noexcept
4586
{
4587
    if constexpr (!is_valid_char_type<CharT>) {
4588
        return invalid_char_type{};
4589
    }
4590
    else if constexpr (!std::is_same_v<Traits, std::char_traits<CharT>>) {
4591
        return custom_char_traits{};
4592
    }
4593
    else {
4594
        return std::basic_string_view<CharT>{r};
4595
    }
4596
}
4597
4598
// String literals:
4599
// CharT(&)[] -> string_buffer
4600
template <typename CharT,
4601
          std::size_t N,
4602
          std::enable_if_t<is_valid_char_type<CharT>>* = nullptr>
4603
auto impl(const CharT (&r)[N], priority_tag<3>) noexcept
4604
{
4605
    return std::basic_string_view<CharT>{r, N - 1};
4606
}
4607
4608
// FILE* -> file_buffer
4609
inline auto impl(std::FILE* file, priority_tag<3>)
4610
0
{
4611
0
    return make_file_scan_buffer(file);
4612
0
}
4613
4614
// contiguous + sized -> string_buffer
4615
template <typename Range,
4616
          std::enable_if_t<ranges::contiguous_range<Range> &&
4617
                           ranges::sized_range<Range>>* = nullptr>
4618
auto impl(const Range& r, priority_tag<2>)
4619
44.7M
{
4620
44.7M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
44.7M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
44.7M
    }
4623
44.7M
    else {
4624
44.7M
        return invalid_char_type{};
4625
44.7M
    }
4626
44.7M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
4619
4.90M
{
4620
4.90M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
4.90M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
4.90M
    }
4623
4.90M
    else {
4624
4.90M
        return invalid_char_type{};
4625
4.90M
    }
4626
4.90M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
4619
39.8M
{
4620
39.8M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
39.8M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
39.8M
    }
4623
39.8M
    else {
4624
39.8M
        return invalid_char_type{};
4625
39.8M
    }
4626
39.8M
}
4627
4628
// !contiguous + random-access + iterator can be made into a ptr
4629
// for MSVC debug iterators
4630
//   -> string_buffer
4631
template <typename Range,
4632
          std::enable_if_t<!ranges::contiguous_range<Range> &&
4633
                           ranges::random_access_range<Range> &&
4634
                           can_make_address_from_iterator<
4635
                               ranges::iterator_t<Range>>>* = nullptr>
4636
auto impl(const Range& r, priority_tag<1>)
4637
{
4638
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4639
        return make_string_view_from_pointers(to_address(ranges::begin(r)),
4640
                                              to_address(ranges::end(r)));
4641
    }
4642
    else {
4643
        return invalid_char_type{};
4644
    }
4645
}
4646
4647
// forward -> forward_buffer<R>
4648
template <typename Range>
4649
auto impl(const Range& r, priority_tag<0>)
4650
25.0M
{
4651
25.0M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
25.0M
        return file_marker_found{};
4653
25.0M
    }
4654
25.0M
    else if constexpr (!ranges::forward_range<Range>) {
4655
25.0M
        if constexpr (ranges::range<Range>) {
4656
25.0M
            return insufficient_range{};
4657
25.0M
        }
4658
25.0M
        else {
4659
25.0M
            return invalid_input_range{};
4660
25.0M
        }
4661
25.0M
    }
4662
25.0M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
25.0M
        return invalid_char_type{};
4664
25.0M
    }
4665
25.0M
    else {
4666
25.0M
        return make_forward_scan_buffer(r);
4667
25.0M
    }
4668
25.0M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<0ul>)
Line
Count
Source
4650
4.73M
{
4651
4.73M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
4.73M
        return file_marker_found{};
4653
4.73M
    }
4654
4.73M
    else if constexpr (!ranges::forward_range<Range>) {
4655
4.73M
        if constexpr (ranges::range<Range>) {
4656
4.73M
            return insufficient_range{};
4657
4.73M
        }
4658
4.73M
        else {
4659
4.73M
            return invalid_input_range{};
4660
4.73M
        }
4661
4.73M
    }
4662
4.73M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
4.73M
        return invalid_char_type{};
4664
4.73M
    }
4665
4.73M
    else {
4666
4.73M
        return make_forward_scan_buffer(r);
4667
4.73M
    }
4668
4.73M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<0ul>)
Line
Count
Source
4650
20.2M
{
4651
20.2M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
20.2M
        return file_marker_found{};
4653
20.2M
    }
4654
20.2M
    else if constexpr (!ranges::forward_range<Range>) {
4655
20.2M
        if constexpr (ranges::range<Range>) {
4656
20.2M
            return insufficient_range{};
4657
20.2M
        }
4658
20.2M
        else {
4659
20.2M
            return invalid_input_range{};
4660
20.2M
        }
4661
20.2M
    }
4662
20.2M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
20.2M
        return invalid_char_type{};
4664
20.2M
    }
4665
20.2M
    else {
4666
20.2M
        return make_forward_scan_buffer(r);
4667
20.2M
    }
4668
20.2M
}
4669
}  // namespace _make_scan_buffer
4670
4671
template <typename Range>
4672
inline constexpr bool is_scannable_range =
4673
    !std::is_base_of_v<invalid_input_range,
4674
                       decltype(_make_scan_buffer::impl(
4675
                                    SCN_DECLVAL(const Range&)),
4676
                                priority_tag<4>{})>;
4677
4678
template <typename Range>
4679
auto make_scan_buffer(const Range& range)
4680
69.9M
{
4681
69.9M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
69.9M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
69.9M
                  "\n"
4685
69.9M
                  "Unsupported range type given as input to a scanning "
4686
69.9M
                  "function.\n"
4687
69.9M
                  "A range needs to have a character type (value type) "
4688
69.9M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
69.9M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
69.9M
                  "to be included.\n"
4691
69.9M
                  "See the scnlib documentation for more details.");
4692
69.9M
    static_assert(
4693
69.9M
        !std::is_same_v<T, custom_char_traits>,
4694
69.9M
        "\n"
4695
69.9M
        "Unsupported range type given as input to a scanning "
4696
69.9M
        "function.\n"
4697
69.9M
        "String types (std::basic_string, and std::basic_string_view) "
4698
69.9M
        "need to use std::char_traits. Strings with custom Traits are "
4699
69.9M
        "not supported.");
4700
69.9M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
69.9M
                  "\n"
4702
69.9M
                  "Unsupported range type given as input to a scanning "
4703
69.9M
                  "function.\n"
4704
69.9M
                  "file_marker_found cannot be used as an "
4705
69.9M
                  "source range type to scn::scan.\n"
4706
69.9M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
69.9M
                  "and do not provide an explicit source range, "
4708
69.9M
                  "or use scn::scan with a FILE* directly.");
4709
69.9M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
69.9M
                  "\n"
4711
69.9M
                  "Unsupported range type given as input to a scanning "
4712
69.9M
                  "function.\n"
4713
69.9M
                  "In order to be scannable, a range needs to satisfy "
4714
69.9M
                  "`forward_range`. `input_range` is not sufficient.");
4715
69.9M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
69.9M
                  "\n"
4717
69.9M
                  "Unsupported range type given as input to a scanning "
4718
69.9M
                  "function.\n"
4719
69.9M
                  "A range needs to model forward_range and have a valid "
4720
69.9M
                  "character type (char or wchar_t) to be scannable.\n"
4721
69.9M
                  "Examples of scannable ranges are std::string, "
4722
69.9M
                  "std::string_view, "
4723
69.9M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
69.9M
                  "See the scnlib documentation for more details.");
4725
4726
69.9M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
69.9M
}
auto scn::v3::detail::make_scan_buffer<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
4680
72.2k
{
4681
72.2k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
72.2k
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
72.2k
                  "\n"
4685
72.2k
                  "Unsupported range type given as input to a scanning "
4686
72.2k
                  "function.\n"
4687
72.2k
                  "A range needs to have a character type (value type) "
4688
72.2k
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
72.2k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
72.2k
                  "to be included.\n"
4691
72.2k
                  "See the scnlib documentation for more details.");
4692
72.2k
    static_assert(
4693
72.2k
        !std::is_same_v<T, custom_char_traits>,
4694
72.2k
        "\n"
4695
72.2k
        "Unsupported range type given as input to a scanning "
4696
72.2k
        "function.\n"
4697
72.2k
        "String types (std::basic_string, and std::basic_string_view) "
4698
72.2k
        "need to use std::char_traits. Strings with custom Traits are "
4699
72.2k
        "not supported.");
4700
72.2k
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
72.2k
                  "\n"
4702
72.2k
                  "Unsupported range type given as input to a scanning "
4703
72.2k
                  "function.\n"
4704
72.2k
                  "file_marker_found cannot be used as an "
4705
72.2k
                  "source range type to scn::scan.\n"
4706
72.2k
                  "To read from stdin, use scn::input or scn::prompt, "
4707
72.2k
                  "and do not provide an explicit source range, "
4708
72.2k
                  "or use scn::scan with a FILE* directly.");
4709
72.2k
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
72.2k
                  "\n"
4711
72.2k
                  "Unsupported range type given as input to a scanning "
4712
72.2k
                  "function.\n"
4713
72.2k
                  "In order to be scannable, a range needs to satisfy "
4714
72.2k
                  "`forward_range`. `input_range` is not sufficient.");
4715
72.2k
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
72.2k
                  "\n"
4717
72.2k
                  "Unsupported range type given as input to a scanning "
4718
72.2k
                  "function.\n"
4719
72.2k
                  "A range needs to model forward_range and have a valid "
4720
72.2k
                  "character type (char or wchar_t) to be scannable.\n"
4721
72.2k
                  "Examples of scannable ranges are std::string, "
4722
72.2k
                  "std::string_view, "
4723
72.2k
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
72.2k
                  "See the scnlib documentation for more details.");
4725
4726
72.2k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
72.2k
}
auto scn::v3::detail::make_scan_buffer<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > const&)
Line
Count
Source
4680
144k
{
4681
144k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
144k
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
144k
                  "\n"
4685
144k
                  "Unsupported range type given as input to a scanning "
4686
144k
                  "function.\n"
4687
144k
                  "A range needs to have a character type (value type) "
4688
144k
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
144k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
144k
                  "to be included.\n"
4691
144k
                  "See the scnlib documentation for more details.");
4692
144k
    static_assert(
4693
144k
        !std::is_same_v<T, custom_char_traits>,
4694
144k
        "\n"
4695
144k
        "Unsupported range type given as input to a scanning "
4696
144k
        "function.\n"
4697
144k
        "String types (std::basic_string, and std::basic_string_view) "
4698
144k
        "need to use std::char_traits. Strings with custom Traits are "
4699
144k
        "not supported.");
4700
144k
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
144k
                  "\n"
4702
144k
                  "Unsupported range type given as input to a scanning "
4703
144k
                  "function.\n"
4704
144k
                  "file_marker_found cannot be used as an "
4705
144k
                  "source range type to scn::scan.\n"
4706
144k
                  "To read from stdin, use scn::input or scn::prompt, "
4707
144k
                  "and do not provide an explicit source range, "
4708
144k
                  "or use scn::scan with a FILE* directly.");
4709
144k
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
144k
                  "\n"
4711
144k
                  "Unsupported range type given as input to a scanning "
4712
144k
                  "function.\n"
4713
144k
                  "In order to be scannable, a range needs to satisfy "
4714
144k
                  "`forward_range`. `input_range` is not sufficient.");
4715
144k
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
144k
                  "\n"
4717
144k
                  "Unsupported range type given as input to a scanning "
4718
144k
                  "function.\n"
4719
144k
                  "A range needs to model forward_range and have a valid "
4720
144k
                  "character type (char or wchar_t) to be scannable.\n"
4721
144k
                  "Examples of scannable ranges are std::string, "
4722
144k
                  "std::string_view, "
4723
144k
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
144k
                  "See the scnlib documentation for more details.");
4725
4726
144k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
144k
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&)
Line
Count
Source
4680
4.90M
{
4681
4.90M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
4.90M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
4.90M
                  "\n"
4685
4.90M
                  "Unsupported range type given as input to a scanning "
4686
4.90M
                  "function.\n"
4687
4.90M
                  "A range needs to have a character type (value type) "
4688
4.90M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
4.90M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
4.90M
                  "to be included.\n"
4691
4.90M
                  "See the scnlib documentation for more details.");
4692
4.90M
    static_assert(
4693
4.90M
        !std::is_same_v<T, custom_char_traits>,
4694
4.90M
        "\n"
4695
4.90M
        "Unsupported range type given as input to a scanning "
4696
4.90M
        "function.\n"
4697
4.90M
        "String types (std::basic_string, and std::basic_string_view) "
4698
4.90M
        "need to use std::char_traits. Strings with custom Traits are "
4699
4.90M
        "not supported.");
4700
4.90M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
4.90M
                  "\n"
4702
4.90M
                  "Unsupported range type given as input to a scanning "
4703
4.90M
                  "function.\n"
4704
4.90M
                  "file_marker_found cannot be used as an "
4705
4.90M
                  "source range type to scn::scan.\n"
4706
4.90M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
4.90M
                  "and do not provide an explicit source range, "
4708
4.90M
                  "or use scn::scan with a FILE* directly.");
4709
4.90M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
4.90M
                  "\n"
4711
4.90M
                  "Unsupported range type given as input to a scanning "
4712
4.90M
                  "function.\n"
4713
4.90M
                  "In order to be scannable, a range needs to satisfy "
4714
4.90M
                  "`forward_range`. `input_range` is not sufficient.");
4715
4.90M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
4.90M
                  "\n"
4717
4.90M
                  "Unsupported range type given as input to a scanning "
4718
4.90M
                  "function.\n"
4719
4.90M
                  "A range needs to model forward_range and have a valid "
4720
4.90M
                  "character type (char or wchar_t) to be scannable.\n"
4721
4.90M
                  "Examples of scannable ranges are std::string, "
4722
4.90M
                  "std::string_view, "
4723
4.90M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
4.90M
                  "See the scnlib documentation for more details.");
4725
4726
4.90M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
4.90M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4680
4.73M
{
4681
4.73M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
4.73M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
4.73M
                  "\n"
4685
4.73M
                  "Unsupported range type given as input to a scanning "
4686
4.73M
                  "function.\n"
4687
4.73M
                  "A range needs to have a character type (value type) "
4688
4.73M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
4.73M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
4.73M
                  "to be included.\n"
4691
4.73M
                  "See the scnlib documentation for more details.");
4692
4.73M
    static_assert(
4693
4.73M
        !std::is_same_v<T, custom_char_traits>,
4694
4.73M
        "\n"
4695
4.73M
        "Unsupported range type given as input to a scanning "
4696
4.73M
        "function.\n"
4697
4.73M
        "String types (std::basic_string, and std::basic_string_view) "
4698
4.73M
        "need to use std::char_traits. Strings with custom Traits are "
4699
4.73M
        "not supported.");
4700
4.73M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
4.73M
                  "\n"
4702
4.73M
                  "Unsupported range type given as input to a scanning "
4703
4.73M
                  "function.\n"
4704
4.73M
                  "file_marker_found cannot be used as an "
4705
4.73M
                  "source range type to scn::scan.\n"
4706
4.73M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
4.73M
                  "and do not provide an explicit source range, "
4708
4.73M
                  "or use scn::scan with a FILE* directly.");
4709
4.73M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
4.73M
                  "\n"
4711
4.73M
                  "Unsupported range type given as input to a scanning "
4712
4.73M
                  "function.\n"
4713
4.73M
                  "In order to be scannable, a range needs to satisfy "
4714
4.73M
                  "`forward_range`. `input_range` is not sufficient.");
4715
4.73M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
4.73M
                  "\n"
4717
4.73M
                  "Unsupported range type given as input to a scanning "
4718
4.73M
                  "function.\n"
4719
4.73M
                  "A range needs to model forward_range and have a valid "
4720
4.73M
                  "character type (char or wchar_t) to be scannable.\n"
4721
4.73M
                  "Examples of scannable ranges are std::string, "
4722
4.73M
                  "std::string_view, "
4723
4.73M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
4.73M
                  "See the scnlib documentation for more details.");
4725
4726
4.73M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
4.73M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
4680
39.8M
{
4681
39.8M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
39.8M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
39.8M
                  "\n"
4685
39.8M
                  "Unsupported range type given as input to a scanning "
4686
39.8M
                  "function.\n"
4687
39.8M
                  "A range needs to have a character type (value type) "
4688
39.8M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
39.8M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
39.8M
                  "to be included.\n"
4691
39.8M
                  "See the scnlib documentation for more details.");
4692
39.8M
    static_assert(
4693
39.8M
        !std::is_same_v<T, custom_char_traits>,
4694
39.8M
        "\n"
4695
39.8M
        "Unsupported range type given as input to a scanning "
4696
39.8M
        "function.\n"
4697
39.8M
        "String types (std::basic_string, and std::basic_string_view) "
4698
39.8M
        "need to use std::char_traits. Strings with custom Traits are "
4699
39.8M
        "not supported.");
4700
39.8M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
39.8M
                  "\n"
4702
39.8M
                  "Unsupported range type given as input to a scanning "
4703
39.8M
                  "function.\n"
4704
39.8M
                  "file_marker_found cannot be used as an "
4705
39.8M
                  "source range type to scn::scan.\n"
4706
39.8M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
39.8M
                  "and do not provide an explicit source range, "
4708
39.8M
                  "or use scn::scan with a FILE* directly.");
4709
39.8M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
39.8M
                  "\n"
4711
39.8M
                  "Unsupported range type given as input to a scanning "
4712
39.8M
                  "function.\n"
4713
39.8M
                  "In order to be scannable, a range needs to satisfy "
4714
39.8M
                  "`forward_range`. `input_range` is not sufficient.");
4715
39.8M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
39.8M
                  "\n"
4717
39.8M
                  "Unsupported range type given as input to a scanning "
4718
39.8M
                  "function.\n"
4719
39.8M
                  "A range needs to model forward_range and have a valid "
4720
39.8M
                  "character type (char or wchar_t) to be scannable.\n"
4721
39.8M
                  "Examples of scannable ranges are std::string, "
4722
39.8M
                  "std::string_view, "
4723
39.8M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
39.8M
                  "See the scnlib documentation for more details.");
4725
4726
39.8M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
39.8M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4680
20.2M
{
4681
20.2M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
20.2M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
20.2M
                  "\n"
4685
20.2M
                  "Unsupported range type given as input to a scanning "
4686
20.2M
                  "function.\n"
4687
20.2M
                  "A range needs to have a character type (value type) "
4688
20.2M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
20.2M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
20.2M
                  "to be included.\n"
4691
20.2M
                  "See the scnlib documentation for more details.");
4692
20.2M
    static_assert(
4693
20.2M
        !std::is_same_v<T, custom_char_traits>,
4694
20.2M
        "\n"
4695
20.2M
        "Unsupported range type given as input to a scanning "
4696
20.2M
        "function.\n"
4697
20.2M
        "String types (std::basic_string, and std::basic_string_view) "
4698
20.2M
        "need to use std::char_traits. Strings with custom Traits are "
4699
20.2M
        "not supported.");
4700
20.2M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
20.2M
                  "\n"
4702
20.2M
                  "Unsupported range type given as input to a scanning "
4703
20.2M
                  "function.\n"
4704
20.2M
                  "file_marker_found cannot be used as an "
4705
20.2M
                  "source range type to scn::scan.\n"
4706
20.2M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
20.2M
                  "and do not provide an explicit source range, "
4708
20.2M
                  "or use scn::scan with a FILE* directly.");
4709
20.2M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
20.2M
                  "\n"
4711
20.2M
                  "Unsupported range type given as input to a scanning "
4712
20.2M
                  "function.\n"
4713
20.2M
                  "In order to be scannable, a range needs to satisfy "
4714
20.2M
                  "`forward_range`. `input_range` is not sufficient.");
4715
20.2M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
20.2M
                  "\n"
4717
20.2M
                  "Unsupported range type given as input to a scanning "
4718
20.2M
                  "function.\n"
4719
20.2M
                  "A range needs to model forward_range and have a valid "
4720
20.2M
                  "character type (char or wchar_t) to be scannable.\n"
4721
20.2M
                  "Examples of scannable ranges are std::string, "
4722
20.2M
                  "std::string_view, "
4723
20.2M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
20.2M
                  "See the scnlib documentation for more details.");
4725
4726
20.2M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
20.2M
}
4728
4729
template <
4730
    typename Range,
4731
    std::enable_if_t<
4732
        !std::is_reference_v<Range> && !ranges::borrowed_range<Range> &&
4733
        !std::is_same_v<std::FILE*, std::remove_reference_t<Range>>>* = nullptr>
4734
auto make_scan_buffer(Range&&) = delete;
4735
}  // namespace detail
4736
4737
/////////////////////////////////////////////////////////////////
4738
// Argument type erasure
4739
/////////////////////////////////////////////////////////////////
4740
4741
namespace detail {
4742
enum class arg_type : unsigned char {
4743
    none_type,
4744
    schar_type,
4745
    short_type,
4746
    int_type,
4747
    long_type,
4748
    llong_type,
4749
    uchar_type,
4750
    ushort_type,
4751
    uint_type,
4752
    ulong_type,
4753
    ullong_type,
4754
    bool_type,
4755
    narrow_character_type,
4756
    wide_character_type,
4757
    code_point_type,
4758
    pointer_type,
4759
    float_type,
4760
    double_type,
4761
    ldouble_type,
4762
    narrow_string_view_type,
4763
    wide_string_view_type,
4764
    narrow_string_type,
4765
    wide_string_type,
4766
    narrow_regex_matches_type,
4767
    wide_regex_matches_type,
4768
    custom_type,
4769
    last_type = custom_type
4770
};
4771
4772
template <typename>
4773
inline constexpr bool is_type_disabled = SCN_DISABLE_TYPE_CUSTOM;
4774
4775
template <typename T, typename CharT>
4776
struct arg_type_constant
4777
    : std::integral_constant<arg_type, arg_type::custom_type> {
4778
    using type = T;
4779
};
4780
4781
#define SCN_TYPE_CONSTANT(Type, C, Disabled)              \
4782
    template <typename CharT>                             \
4783
    struct arg_type_constant<Type, CharT>                 \
4784
        : std::integral_constant<arg_type, arg_type::C> { \
4785
        using type = Type;                                \
4786
    };                                                    \
4787
    template <>                                           \
4788
    inline constexpr bool is_type_disabled<Type> = Disabled
4789
4790
SCN_TYPE_CONSTANT(signed char, schar_type, SCN_DISABLE_TYPE_SCHAR);
4791
SCN_TYPE_CONSTANT(short, short_type, SCN_DISABLE_TYPE_SHORT);
4792
SCN_TYPE_CONSTANT(int, int_type, SCN_DISABLE_TYPE_INT);
4793
SCN_TYPE_CONSTANT(long, long_type, SCN_DISABLE_TYPE_LONG);
4794
SCN_TYPE_CONSTANT(long long, llong_type, SCN_DISABLE_TYPE_LONG_LONG);
4795
SCN_TYPE_CONSTANT(unsigned char, uchar_type, SCN_DISABLE_TYPE_UCHAR);
4796
SCN_TYPE_CONSTANT(unsigned short, ushort_type, SCN_DISABLE_TYPE_USHORT);
4797
SCN_TYPE_CONSTANT(unsigned int, uint_type, SCN_DISABLE_TYPE_UINT);
4798
SCN_TYPE_CONSTANT(unsigned long, ulong_type, SCN_DISABLE_TYPE_ULONG);
4799
SCN_TYPE_CONSTANT(unsigned long long, ullong_type, SCN_DISABLE_TYPE_ULONG_LONG);
4800
SCN_TYPE_CONSTANT(bool, bool_type, SCN_DISABLE_TYPE_BOOL);
4801
SCN_TYPE_CONSTANT(char, narrow_character_type, SCN_DISABLE_TYPE_CHAR);
4802
SCN_TYPE_CONSTANT(wchar_t, wide_character_type, SCN_DISABLE_TYPE_CHAR);
4803
SCN_TYPE_CONSTANT(char32_t, code_point_type, SCN_DISABLE_TYPE_CHAR32);
4804
SCN_TYPE_CONSTANT(void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
4805
SCN_TYPE_CONSTANT(float, float_type, SCN_DISABLE_TYPE_FLOAT);
4806
SCN_TYPE_CONSTANT(double, double_type, SCN_DISABLE_TYPE_DOUBLE);
4807
SCN_TYPE_CONSTANT(long double, ldouble_type, SCN_DISABLE_TYPE_LONG_DOUBLE);
4808
SCN_TYPE_CONSTANT(std::string_view,
4809
                  narrow_string_view_type,
4810
                  SCN_DISABLE_TYPE_STRING_VIEW);
4811
SCN_TYPE_CONSTANT(std::wstring_view,
4812
                  wide_string_view_type,
4813
                  SCN_DISABLE_TYPE_STRING_VIEW);
4814
SCN_TYPE_CONSTANT(std::string, narrow_string_type, SCN_DISABLE_TYPE_STRING);
4815
SCN_TYPE_CONSTANT(std::wstring, wide_string_type, SCN_DISABLE_TYPE_STRING);
4816
SCN_TYPE_CONSTANT(regex_matches, narrow_regex_matches_type, SCN_DISABLE_REGEX);
4817
SCN_TYPE_CONSTANT(wregex_matches, wide_regex_matches_type, SCN_DISABLE_REGEX);
4818
4819
#undef SCN_TYPE_CONSTANT
4820
4821
struct custom_value_type {
4822
    void* value;
4823
    scan_error (*scan)(void* arg, void* pctx, void* ctx);
4824
};
4825
4826
struct unscannable {};
4827
struct unscannable_char : unscannable {};
4828
struct unscannable_const : unscannable {};
4829
struct unscannable_disabled : unscannable {
4830
    unscannable_disabled() = default;
4831
4832
    template <typename T>
4833
    constexpr unscannable_disabled(T&&)
4834
    {
4835
    }
4836
};
4837
4838
struct needs_context_tag {};
4839
4840
template <typename Context>
4841
struct context_tag {
4842
    using type = Context;
4843
};
4844
4845
template <typename T, typename Context>
4846
struct custom_wrapper {
4847
    using context_type = Context;
4848
    T& val;
4849
};
4850
4851
class arg_value {
4852
public:
4853
    // trivial default initialization in constexpr
4854
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201907L && \
4855
    SCN_STD > SCN_STD_20
4856
    constexpr
4857
#endif
4858
69.8M
    arg_value() = default;
4859
4860
    template <typename T>
4861
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
4862
69.9M
    {
4863
69.9M
    }
scn::v3::detail::arg_value::arg_value<char>(char&)
Line
Count
Source
4862
8.03k
    {
4863
8.03k
    }
scn::v3::detail::arg_value::arg_value<int>(int&)
Line
Count
Source
4862
1.03M
    {
4863
1.03M
    }
scn::v3::detail::arg_value::arg_value<unsigned int>(unsigned int&)
Line
Count
Source
4862
921k
    {
4863
921k
    }
scn::v3::detail::arg_value::arg_value<double>(double&)
Line
Count
Source
4862
1.78M
    {
4863
1.78M
    }
scn::v3::detail::arg_value::arg_value<bool>(bool&)
Line
Count
Source
4862
24.0k
    {
4863
24.0k
    }
scn::v3::detail::arg_value::arg_value<void*>(void*&)
Line
Count
Source
4862
24.0k
    {
4863
24.0k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4862
347k
    {
4863
347k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4862
39.0M
    {
4863
39.0M
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
4862
168k
    {
4863
168k
    }
scn::v3::detail::arg_value::arg_value<wchar_t>(wchar_t&)
Line
Count
Source
4862
16.0k
    {
4863
16.0k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
4862
19.5M
    {
4863
19.5M
    }
scn::v3::detail::arg_value::arg_value<signed char>(signed char&)
Line
Count
Source
4862
842k
    {
4863
842k
    }
scn::v3::detail::arg_value::arg_value<unsigned char>(unsigned char&)
Line
Count
Source
4862
814k
    {
4863
814k
    }
scn::v3::detail::arg_value::arg_value<long long>(long long&)
Line
Count
Source
4862
1.02M
    {
4863
1.02M
    }
scn::v3::detail::arg_value::arg_value<unsigned long long>(unsigned long long&)
Line
Count
Source
4862
905k
    {
4863
905k
    }
scn::v3::detail::arg_value::arg_value<float>(float&)
Line
Count
Source
4862
1.64M
    {
4863
1.64M
    }
scn::v3::detail::arg_value::arg_value<long double>(long double&)
Line
Count
Source
4862
1.78M
    {
4863
1.78M
    }
4864
4865
    template <typename T, typename Context>
4866
    explicit constexpr arg_value(custom_wrapper<T, Context> val)
4867
        : custom_value{static_cast<void*>(&val.val),
4868
                       scan_custom_arg<T, Context>}
4869
    {
4870
    }
4871
4872
    arg_value(unscannable);
4873
    arg_value(unscannable_char);
4874
    arg_value(unscannable_const);
4875
    arg_value(unscannable_disabled);
4876
4877
    union {
4878
        void* ref_value{nullptr};
4879
        custom_value_type custom_value;
4880
    };
4881
4882
private:
4883
    template <typename T, typename Context>
4884
    static scan_error scan_custom_arg(void* arg, void* pctx, void* ctx)
4885
    {
4886
        static_assert(!is_type_disabled<T>,
4887
                      "Scanning of custom types is disabled by "
4888
                      "SCN_DISABLE_TYPE_CUSTOM");
4889
        SCN_EXPECT(arg && pctx && ctx);
4890
4891
        using context_type = Context;
4892
        using parse_context_type = typename context_type::parse_context_type;
4893
        using scanner_type = typename context_type::template scanner_type<T>;
4894
4895
        auto s = scanner_type{};
4896
4897
        auto& arg_ref = *static_cast<T*>(arg);
4898
        auto& pctx_ref = *static_cast<parse_context_type*>(pctx);
4899
        auto& ctx_ref = *static_cast<context_type*>(ctx);
4900
4901
        SCN_TRY_ERR(_, s.parse(pctx_ref));
4902
        SCN_UNUSED(_);
4903
        SCN_TRY_ERR(it, s.scan(arg_ref, ctx_ref));
4904
        ctx_ref.advance_to(SCN_MOVE(it));
4905
4906
        return {};
4907
    }
4908
};
4909
4910
template <typename CharT>
4911
struct arg_mapper {
4912
    using char_type = CharT;
4913
    using other_char_type =
4914
        std::conditional_t<std::is_same_v<char_type, char>, wchar_t, char>;
4915
4916
#define SCN_ARG_MAPPER(T)                                                    \
4917
    static auto map(T& val)                                                  \
4918
        -> std::conditional_t<is_type_disabled<T>, unscannable_disabled, T&> \
4919
69.9M
    {                                                                        \
4920
69.9M
        return val;                                                          \
4921
69.9M
    }
scn::v3::detail::arg_mapper<char>::map(int&)
Line
Count
Source
4919
855k
    {                                                                        \
4920
855k
        return val;                                                          \
4921
855k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned int&)
Line
Count
Source
4919
741k
    {                                                                        \
4920
741k
        return val;                                                          \
4921
741k
    }
scn::v3::detail::arg_mapper<char>::map(double&)
Line
Count
Source
4919
1.59M
    {                                                                        \
4920
1.59M
        return val;                                                          \
4921
1.59M
    }
scn::v3::detail::arg_mapper<char>::map(bool&)
Line
Count
Source
4919
8.03k
    {                                                                        \
4920
8.03k
        return val;                                                          \
4921
8.03k
    }
scn::v3::detail::arg_mapper<char>::map(void*&)
Line
Count
Source
4919
8.03k
    {                                                                        \
4920
8.03k
        return val;                                                          \
4921
8.03k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4919
331k
    {                                                                        \
4920
331k
        return val;                                                          \
4921
331k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4919
8.03k
    {                                                                        \
4920
8.03k
        return val;                                                          \
4921
8.03k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
4919
168k
    {                                                                        \
4920
168k
        return val;                                                          \
4921
168k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(wchar_t&)
Line
Count
Source
4919
16.0k
    {                                                                        \
4920
16.0k
        return val;                                                          \
4921
16.0k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(int&)
Line
Count
Source
4919
180k
    {                                                                        \
4920
180k
        return val;                                                          \
4921
180k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned int&)
Line
Count
Source
4919
180k
    {                                                                        \
4920
180k
        return val;                                                          \
4921
180k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(double&)
Line
Count
Source
4919
196k
    {                                                                        \
4920
196k
        return val;                                                          \
4921
196k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(bool&)
Line
Count
Source
4919
16.0k
    {                                                                        \
4920
16.0k
        return val;                                                          \
4921
16.0k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(void*&)
Line
Count
Source
4919
16.0k
    {                                                                        \
4920
16.0k
        return val;                                                          \
4921
16.0k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4919
16.0k
    {                                                                        \
4920
16.0k
        return val;                                                          \
4921
16.0k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4919
39.0M
    {                                                                        \
4920
39.0M
        return val;                                                          \
4921
39.0M
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
4919
19.5M
    {                                                                        \
4920
19.5M
        return val;                                                          \
4921
19.5M
    }
scn::v3::detail::arg_mapper<char>::map(signed char&)
Line
Count
Source
4919
677k
    {                                                                        \
4920
677k
        return val;                                                          \
4921
677k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned char&)
Line
Count
Source
4919
650k
    {                                                                        \
4920
650k
        return val;                                                          \
4921
650k
    }
scn::v3::detail::arg_mapper<char>::map(long long&)
Line
Count
Source
4919
863k
    {                                                                        \
4920
863k
        return val;                                                          \
4921
863k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned long long&)
Line
Count
Source
4919
741k
    {                                                                        \
4920
741k
        return val;                                                          \
4921
741k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(signed char&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned char&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(long long&)
Line
Count
Source
4919
165k
    {                                                                        \
4920
165k
        return val;                                                          \
4921
165k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned long long&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<char>::map(float&)
Line
Count
Source
4919
1.46M
    {                                                                        \
4920
1.46M
        return val;                                                          \
4921
1.46M
    }
scn::v3::detail::arg_mapper<char>::map(long double&)
Line
Count
Source
4919
1.60M
    {                                                                        \
4920
1.60M
        return val;                                                          \
4921
1.60M
    }
scn::v3::detail::arg_mapper<wchar_t>::map(float&)
Line
Count
Source
4919
180k
    {                                                                        \
4920
180k
        return val;                                                          \
4921
180k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(long double&)
Line
Count
Source
4919
180k
    {                                                                        \
4920
180k
        return val;                                                          \
4921
180k
    }
4922
4923
    SCN_ARG_MAPPER(signed char)
4924
    SCN_ARG_MAPPER(short)
4925
    SCN_ARG_MAPPER(int)
4926
    SCN_ARG_MAPPER(long)
4927
    SCN_ARG_MAPPER(long long)
4928
    SCN_ARG_MAPPER(unsigned char)
4929
    SCN_ARG_MAPPER(unsigned short)
4930
    SCN_ARG_MAPPER(unsigned)
4931
    SCN_ARG_MAPPER(unsigned long)
4932
    SCN_ARG_MAPPER(unsigned long long)
4933
    SCN_ARG_MAPPER(wchar_t)
4934
    SCN_ARG_MAPPER(char32_t)
4935
    SCN_ARG_MAPPER(bool)
4936
    SCN_ARG_MAPPER(void*)
4937
    SCN_ARG_MAPPER(float)
4938
    SCN_ARG_MAPPER(double)
4939
    SCN_ARG_MAPPER(long double)
4940
4941
    SCN_ARG_MAPPER(std::basic_string_view<char_type>)
4942
    SCN_ARG_MAPPER(std::string)
4943
    SCN_ARG_MAPPER(std::wstring)
4944
4945
#undef SCN_ARG_MAPPER
4946
4947
    static decltype(auto) map(char& val)
4948
8.03k
    {
4949
8.03k
        if constexpr (std::is_same_v<char_type, char> &&
4950
8.03k
                      !is_type_disabled<char_type>) {
4951
8.03k
            return val;
4952
8.03k
        }
4953
8.03k
        else if constexpr (is_type_disabled<char_type>) {
4954
8.03k
            return unscannable_disabled{val};
4955
8.03k
        }
4956
8.03k
        else {
4957
8.03k
            SCN_UNUSED(val);
4958
8.03k
            return unscannable_char{};
4959
8.03k
        }
4960
8.03k
    }
4961
4962
    static decltype(auto) map(basic_regex_matches<char_type>& val)
4963
    {
4964
        if constexpr (is_type_disabled<char_type>) {
4965
            return unscannable_disabled{val};
4966
        }
4967
        else {
4968
            return val;
4969
        }
4970
    }
4971
4972
    static unscannable_char map(std::basic_string_view<other_char_type>&)
4973
    {
4974
        return {};
4975
    }
4976
    static unscannable_char map(basic_regex_matches<other_char_type>&)
4977
    {
4978
        return {};
4979
    }
4980
4981
    template <typename T>
4982
    static std::enable_if_t<std::is_constructible_v<scanner<T, char_type>>,
4983
                            needs_context_tag>
4984
    map(T&)
4985
    {
4986
        return {};
4987
    }
4988
4989
    template <typename T, typename Context>
4990
    static std::enable_if_t<std::is_constructible_v<scanner<T, char_type>>,
4991
                            custom_wrapper<T, Context>>
4992
    map(T& val, context_tag<Context>)
4993
    {
4994
        return {val};
4995
    }
4996
4997
    static unscannable map(...)
4998
    {
4999
        return {};
5000
    }
5001
};
5002
5003
template <typename T, typename CharT>
5004
using mapped_type_constant = arg_type_constant<
5005
    std::remove_reference_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>,
5006
    CharT>;
5007
5008
template <typename T, typename CharT>
5009
using is_scannable = std::integral_constant<
5010
    bool,
5011
    !std::is_base_of_v<
5012
        unscannable,
5013
        remove_cvref_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>>>;
5014
5015
constexpr std::size_t packed_arg_bits = 5;
5016
static_assert((1 << packed_arg_bits) >= static_cast<int>(arg_type::last_type));
5017
constexpr std::size_t bits_in_sz = sizeof(std::size_t) * 8;
5018
constexpr std::size_t max_packed_args = (bits_in_sz - 2) / packed_arg_bits - 1;
5019
constexpr std::size_t is_unpacked_bit = std::size_t{1} << (bits_in_sz - 1);
5020
constexpr std::size_t has_custom_types_bit = std::size_t{1} << (bits_in_sz - 2);
5021
5022
template <typename>
5023
constexpr size_t encode_types_impl()
5024
0
{
5025
0
    return 0;
5026
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t>()
5027
template <typename CharT, typename T, typename... Others>
5028
constexpr size_t encode_types_impl()
5029
0
{
5030
0
    return static_cast<unsigned>(mapped_type_constant<T, CharT>::value) |
5031
0
           (encode_types_impl<CharT, Others...>() << packed_arg_bits);
5032
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, long double>()
5033
5034
template <typename CharT, typename... Ts>
5035
constexpr size_t encode_types()
5036
0
{
5037
0
    if constexpr (sizeof...(Ts) < (1 << packed_arg_bits)) {
5038
0
        return sizeof...(Ts) |
5039
0
               (encode_types_impl<CharT, Ts...>() << packed_arg_bits);
5040
0
    }
5041
0
    else {
5042
0
        SCN_EXPECT(false);
5043
0
        SCN_UNREACHABLE;
5044
0
    }
5045
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, long double>()
5046
5047
template <typename Arg>
5048
constexpr auto make_value_impl(Arg&& arg)
5049
69.9M
{
5050
69.9M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
69.9M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
69.9M
    constexpr bool scannable_char =
5054
69.9M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
69.9M
    static_assert(scannable_char,
5056
69.9M
                  "Cannot scan an argument of an unsupported character "
5057
69.9M
                  "type (i.e. char from a wchar_t source)");
5058
5059
69.9M
    constexpr bool scannable_const =
5060
69.9M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
69.9M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
69.9M
    constexpr bool scannable_disabled =
5064
69.9M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
69.9M
    static_assert(scannable_disabled,
5066
69.9M
                  "Cannot scan an argument that has been disabled by "
5067
69.9M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
69.9M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
69.9M
    static_assert(
5071
69.9M
        scannable,
5072
69.9M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
69.9M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
69.9M
    return arg_value{arg};
5076
69.9M
}
auto scn::v3::detail::make_value_impl<char&>(char&)
Line
Count
Source
5049
8.03k
{
5050
8.03k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
8.03k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
8.03k
    constexpr bool scannable_char =
5054
8.03k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
8.03k
    static_assert(scannable_char,
5056
8.03k
                  "Cannot scan an argument of an unsupported character "
5057
8.03k
                  "type (i.e. char from a wchar_t source)");
5058
5059
8.03k
    constexpr bool scannable_const =
5060
8.03k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
8.03k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
8.03k
    constexpr bool scannable_disabled =
5064
8.03k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
8.03k
    static_assert(scannable_disabled,
5066
8.03k
                  "Cannot scan an argument that has been disabled by "
5067
8.03k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
8.03k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
8.03k
    static_assert(
5071
8.03k
        scannable,
5072
8.03k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
8.03k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
8.03k
    return arg_value{arg};
5076
8.03k
}
auto scn::v3::detail::make_value_impl<int&>(int&)
Line
Count
Source
5049
1.03M
{
5050
1.03M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.03M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.03M
    constexpr bool scannable_char =
5054
1.03M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.03M
    static_assert(scannable_char,
5056
1.03M
                  "Cannot scan an argument of an unsupported character "
5057
1.03M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.03M
    constexpr bool scannable_const =
5060
1.03M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.03M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.03M
    constexpr bool scannable_disabled =
5064
1.03M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.03M
    static_assert(scannable_disabled,
5066
1.03M
                  "Cannot scan an argument that has been disabled by "
5067
1.03M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.03M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.03M
    static_assert(
5071
1.03M
        scannable,
5072
1.03M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.03M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.03M
    return arg_value{arg};
5076
1.03M
}
auto scn::v3::detail::make_value_impl<unsigned int&>(unsigned int&)
Line
Count
Source
5049
921k
{
5050
921k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
921k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
921k
    constexpr bool scannable_char =
5054
921k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
921k
    static_assert(scannable_char,
5056
921k
                  "Cannot scan an argument of an unsupported character "
5057
921k
                  "type (i.e. char from a wchar_t source)");
5058
5059
921k
    constexpr bool scannable_const =
5060
921k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
921k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
921k
    constexpr bool scannable_disabled =
5064
921k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
921k
    static_assert(scannable_disabled,
5066
921k
                  "Cannot scan an argument that has been disabled by "
5067
921k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
921k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
921k
    static_assert(
5071
921k
        scannable,
5072
921k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
921k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
921k
    return arg_value{arg};
5076
921k
}
auto scn::v3::detail::make_value_impl<double&>(double&)
Line
Count
Source
5049
1.78M
{
5050
1.78M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.78M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.78M
    constexpr bool scannable_char =
5054
1.78M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.78M
    static_assert(scannable_char,
5056
1.78M
                  "Cannot scan an argument of an unsupported character "
5057
1.78M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.78M
    constexpr bool scannable_const =
5060
1.78M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.78M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.78M
    constexpr bool scannable_disabled =
5064
1.78M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.78M
    static_assert(scannable_disabled,
5066
1.78M
                  "Cannot scan an argument that has been disabled by "
5067
1.78M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.78M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.78M
    static_assert(
5071
1.78M
        scannable,
5072
1.78M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.78M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.78M
    return arg_value{arg};
5076
1.78M
}
auto scn::v3::detail::make_value_impl<bool&>(bool&)
Line
Count
Source
5049
24.0k
{
5050
24.0k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
24.0k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
24.0k
    constexpr bool scannable_char =
5054
24.0k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
24.0k
    static_assert(scannable_char,
5056
24.0k
                  "Cannot scan an argument of an unsupported character "
5057
24.0k
                  "type (i.e. char from a wchar_t source)");
5058
5059
24.0k
    constexpr bool scannable_const =
5060
24.0k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
24.0k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
24.0k
    constexpr bool scannable_disabled =
5064
24.0k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
24.0k
    static_assert(scannable_disabled,
5066
24.0k
                  "Cannot scan an argument that has been disabled by "
5067
24.0k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
24.0k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
24.0k
    static_assert(
5071
24.0k
        scannable,
5072
24.0k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
24.0k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
24.0k
    return arg_value{arg};
5076
24.0k
}
auto scn::v3::detail::make_value_impl<void*&>(void*&)
Line
Count
Source
5049
24.0k
{
5050
24.0k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
24.0k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
24.0k
    constexpr bool scannable_char =
5054
24.0k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
24.0k
    static_assert(scannable_char,
5056
24.0k
                  "Cannot scan an argument of an unsupported character "
5057
24.0k
                  "type (i.e. char from a wchar_t source)");
5058
5059
24.0k
    constexpr bool scannable_const =
5060
24.0k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
24.0k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
24.0k
    constexpr bool scannable_disabled =
5064
24.0k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
24.0k
    static_assert(scannable_disabled,
5066
24.0k
                  "Cannot scan an argument that has been disabled by "
5067
24.0k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
24.0k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
24.0k
    static_assert(
5071
24.0k
        scannable,
5072
24.0k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
24.0k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
24.0k
    return arg_value{arg};
5076
24.0k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5049
347k
{
5050
347k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
347k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
347k
    constexpr bool scannable_char =
5054
347k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
347k
    static_assert(scannable_char,
5056
347k
                  "Cannot scan an argument of an unsupported character "
5057
347k
                  "type (i.e. char from a wchar_t source)");
5058
5059
347k
    constexpr bool scannable_const =
5060
347k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
347k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
347k
    constexpr bool scannable_disabled =
5064
347k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
347k
    static_assert(scannable_disabled,
5066
347k
                  "Cannot scan an argument that has been disabled by "
5067
347k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
347k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
347k
    static_assert(
5071
347k
        scannable,
5072
347k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
347k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
347k
    return arg_value{arg};
5076
347k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5049
39.0M
{
5050
39.0M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
39.0M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
39.0M
    constexpr bool scannable_char =
5054
39.0M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
39.0M
    static_assert(scannable_char,
5056
39.0M
                  "Cannot scan an argument of an unsupported character "
5057
39.0M
                  "type (i.e. char from a wchar_t source)");
5058
5059
39.0M
    constexpr bool scannable_const =
5060
39.0M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
39.0M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
39.0M
    constexpr bool scannable_disabled =
5064
39.0M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
39.0M
    static_assert(scannable_disabled,
5066
39.0M
                  "Cannot scan an argument that has been disabled by "
5067
39.0M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
39.0M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
39.0M
    static_assert(
5071
39.0M
        scannable,
5072
39.0M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
39.0M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
39.0M
    return arg_value{arg};
5076
39.0M
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5049
168k
{
5050
168k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
168k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
168k
    constexpr bool scannable_char =
5054
168k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
168k
    static_assert(scannable_char,
5056
168k
                  "Cannot scan an argument of an unsupported character "
5057
168k
                  "type (i.e. char from a wchar_t source)");
5058
5059
168k
    constexpr bool scannable_const =
5060
168k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
168k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
168k
    constexpr bool scannable_disabled =
5064
168k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
168k
    static_assert(scannable_disabled,
5066
168k
                  "Cannot scan an argument that has been disabled by "
5067
168k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
168k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
168k
    static_assert(
5071
168k
        scannable,
5072
168k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
168k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
168k
    return arg_value{arg};
5076
168k
}
auto scn::v3::detail::make_value_impl<wchar_t&>(wchar_t&)
Line
Count
Source
5049
16.0k
{
5050
16.0k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
16.0k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
16.0k
    constexpr bool scannable_char =
5054
16.0k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
16.0k
    static_assert(scannable_char,
5056
16.0k
                  "Cannot scan an argument of an unsupported character "
5057
16.0k
                  "type (i.e. char from a wchar_t source)");
5058
5059
16.0k
    constexpr bool scannable_const =
5060
16.0k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
16.0k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
16.0k
    constexpr bool scannable_disabled =
5064
16.0k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
16.0k
    static_assert(scannable_disabled,
5066
16.0k
                  "Cannot scan an argument that has been disabled by "
5067
16.0k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
16.0k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
16.0k
    static_assert(
5071
16.0k
        scannable,
5072
16.0k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
16.0k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
16.0k
    return arg_value{arg};
5076
16.0k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5049
19.5M
{
5050
19.5M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
19.5M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
19.5M
    constexpr bool scannable_char =
5054
19.5M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
19.5M
    static_assert(scannable_char,
5056
19.5M
                  "Cannot scan an argument of an unsupported character "
5057
19.5M
                  "type (i.e. char from a wchar_t source)");
5058
5059
19.5M
    constexpr bool scannable_const =
5060
19.5M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
19.5M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
19.5M
    constexpr bool scannable_disabled =
5064
19.5M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
19.5M
    static_assert(scannable_disabled,
5066
19.5M
                  "Cannot scan an argument that has been disabled by "
5067
19.5M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
19.5M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
19.5M
    static_assert(
5071
19.5M
        scannable,
5072
19.5M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
19.5M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
19.5M
    return arg_value{arg};
5076
19.5M
}
auto scn::v3::detail::make_value_impl<signed char&>(signed char&)
Line
Count
Source
5049
842k
{
5050
842k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
842k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
842k
    constexpr bool scannable_char =
5054
842k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
842k
    static_assert(scannable_char,
5056
842k
                  "Cannot scan an argument of an unsupported character "
5057
842k
                  "type (i.e. char from a wchar_t source)");
5058
5059
842k
    constexpr bool scannable_const =
5060
842k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
842k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
842k
    constexpr bool scannable_disabled =
5064
842k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
842k
    static_assert(scannable_disabled,
5066
842k
                  "Cannot scan an argument that has been disabled by "
5067
842k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
842k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
842k
    static_assert(
5071
842k
        scannable,
5072
842k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
842k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
842k
    return arg_value{arg};
5076
842k
}
auto scn::v3::detail::make_value_impl<unsigned char&>(unsigned char&)
Line
Count
Source
5049
814k
{
5050
814k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
814k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
814k
    constexpr bool scannable_char =
5054
814k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
814k
    static_assert(scannable_char,
5056
814k
                  "Cannot scan an argument of an unsupported character "
5057
814k
                  "type (i.e. char from a wchar_t source)");
5058
5059
814k
    constexpr bool scannable_const =
5060
814k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
814k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
814k
    constexpr bool scannable_disabled =
5064
814k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
814k
    static_assert(scannable_disabled,
5066
814k
                  "Cannot scan an argument that has been disabled by "
5067
814k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
814k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
814k
    static_assert(
5071
814k
        scannable,
5072
814k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
814k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
814k
    return arg_value{arg};
5076
814k
}
auto scn::v3::detail::make_value_impl<long long&>(long long&)
Line
Count
Source
5049
1.02M
{
5050
1.02M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.02M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.02M
    constexpr bool scannable_char =
5054
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.02M
    static_assert(scannable_char,
5056
1.02M
                  "Cannot scan an argument of an unsupported character "
5057
1.02M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.02M
    constexpr bool scannable_const =
5060
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.02M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.02M
    constexpr bool scannable_disabled =
5064
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.02M
    static_assert(scannable_disabled,
5066
1.02M
                  "Cannot scan an argument that has been disabled by "
5067
1.02M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.02M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.02M
    static_assert(
5071
1.02M
        scannable,
5072
1.02M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.02M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.02M
    return arg_value{arg};
5076
1.02M
}
auto scn::v3::detail::make_value_impl<unsigned long long&>(unsigned long long&)
Line
Count
Source
5049
905k
{
5050
905k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
905k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
905k
    constexpr bool scannable_char =
5054
905k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
905k
    static_assert(scannable_char,
5056
905k
                  "Cannot scan an argument of an unsupported character "
5057
905k
                  "type (i.e. char from a wchar_t source)");
5058
5059
905k
    constexpr bool scannable_const =
5060
905k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
905k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
905k
    constexpr bool scannable_disabled =
5064
905k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
905k
    static_assert(scannable_disabled,
5066
905k
                  "Cannot scan an argument that has been disabled by "
5067
905k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
905k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
905k
    static_assert(
5071
905k
        scannable,
5072
905k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
905k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
905k
    return arg_value{arg};
5076
905k
}
auto scn::v3::detail::make_value_impl<float&>(float&)
Line
Count
Source
5049
1.64M
{
5050
1.64M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.64M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.64M
    constexpr bool scannable_char =
5054
1.64M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.64M
    static_assert(scannable_char,
5056
1.64M
                  "Cannot scan an argument of an unsupported character "
5057
1.64M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.64M
    constexpr bool scannable_const =
5060
1.64M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.64M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.64M
    constexpr bool scannable_disabled =
5064
1.64M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.64M
    static_assert(scannable_disabled,
5066
1.64M
                  "Cannot scan an argument that has been disabled by "
5067
1.64M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.64M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.64M
    static_assert(
5071
1.64M
        scannable,
5072
1.64M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.64M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.64M
    return arg_value{arg};
5076
1.64M
}
auto scn::v3::detail::make_value_impl<long double&>(long double&)
Line
Count
Source
5049
1.78M
{
5050
1.78M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.78M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.78M
    constexpr bool scannable_char =
5054
1.78M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.78M
    static_assert(scannable_char,
5056
1.78M
                  "Cannot scan an argument of an unsupported character "
5057
1.78M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.78M
    constexpr bool scannable_const =
5060
1.78M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.78M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.78M
    constexpr bool scannable_disabled =
5064
1.78M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.78M
    static_assert(scannable_disabled,
5066
1.78M
                  "Cannot scan an argument that has been disabled by "
5067
1.78M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.78M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.78M
    static_assert(
5071
1.78M
        scannable,
5072
1.78M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.78M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.78M
    return arg_value{arg};
5076
1.78M
}
5077
5078
template <typename Context, typename T>
5079
constexpr auto make_value(T& value)
5080
69.9M
{
5081
69.9M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
69.9M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
69.9M
                                  needs_context_tag>) {
5085
69.9M
        return make_value_impl(SCN_FWD(arg));
5086
69.9M
    }
5087
69.9M
    else {
5088
69.9M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
69.9M
            value, context_tag<Context>{}));
5090
69.9M
    }
5091
69.9M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, char>(char&)
Line
Count
Source
5080
8.03k
{
5081
8.03k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.03k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.03k
                                  needs_context_tag>) {
5085
8.03k
        return make_value_impl(SCN_FWD(arg));
5086
8.03k
    }
5087
8.03k
    else {
5088
8.03k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.03k
            value, context_tag<Context>{}));
5090
8.03k
    }
5091
8.03k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, int>(int&)
Line
Count
Source
5080
855k
{
5081
855k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
855k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
855k
                                  needs_context_tag>) {
5085
855k
        return make_value_impl(SCN_FWD(arg));
5086
855k
    }
5087
855k
    else {
5088
855k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
855k
            value, context_tag<Context>{}));
5090
855k
    }
5091
855k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned int>(unsigned int&)
Line
Count
Source
5080
741k
{
5081
741k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
741k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
741k
                                  needs_context_tag>) {
5085
741k
        return make_value_impl(SCN_FWD(arg));
5086
741k
    }
5087
741k
    else {
5088
741k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
741k
            value, context_tag<Context>{}));
5090
741k
    }
5091
741k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, double>(double&)
Line
Count
Source
5080
1.59M
{
5081
1.59M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.59M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.59M
                                  needs_context_tag>) {
5085
1.59M
        return make_value_impl(SCN_FWD(arg));
5086
1.59M
    }
5087
1.59M
    else {
5088
1.59M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.59M
            value, context_tag<Context>{}));
5090
1.59M
    }
5091
1.59M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, bool>(bool&)
Line
Count
Source
5080
8.03k
{
5081
8.03k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.03k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.03k
                                  needs_context_tag>) {
5085
8.03k
        return make_value_impl(SCN_FWD(arg));
5086
8.03k
    }
5087
8.03k
    else {
5088
8.03k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.03k
            value, context_tag<Context>{}));
5090
8.03k
    }
5091
8.03k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, void*>(void*&)
Line
Count
Source
5080
8.03k
{
5081
8.03k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.03k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.03k
                                  needs_context_tag>) {
5085
8.03k
        return make_value_impl(SCN_FWD(arg));
5086
8.03k
    }
5087
8.03k
    else {
5088
8.03k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.03k
            value, context_tag<Context>{}));
5090
8.03k
    }
5091
8.03k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5080
331k
{
5081
331k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
331k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
331k
                                  needs_context_tag>) {
5085
331k
        return make_value_impl(SCN_FWD(arg));
5086
331k
    }
5087
331k
    else {
5088
331k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
331k
            value, context_tag<Context>{}));
5090
331k
    }
5091
331k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5080
8.03k
{
5081
8.03k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
8.03k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
8.03k
                                  needs_context_tag>) {
5085
8.03k
        return make_value_impl(SCN_FWD(arg));
5086
8.03k
    }
5087
8.03k
    else {
5088
8.03k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
8.03k
            value, context_tag<Context>{}));
5090
8.03k
    }
5091
8.03k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5080
168k
{
5081
168k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
168k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
168k
                                  needs_context_tag>) {
5085
168k
        return make_value_impl(SCN_FWD(arg));
5086
168k
    }
5087
168k
    else {
5088
168k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
168k
            value, context_tag<Context>{}));
5090
168k
    }
5091
168k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, wchar_t>(wchar_t&)
Line
Count
Source
5080
16.0k
{
5081
16.0k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.0k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.0k
                                  needs_context_tag>) {
5085
16.0k
        return make_value_impl(SCN_FWD(arg));
5086
16.0k
    }
5087
16.0k
    else {
5088
16.0k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.0k
            value, context_tag<Context>{}));
5090
16.0k
    }
5091
16.0k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, int>(int&)
Line
Count
Source
5080
180k
{
5081
180k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
180k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
180k
                                  needs_context_tag>) {
5085
180k
        return make_value_impl(SCN_FWD(arg));
5086
180k
    }
5087
180k
    else {
5088
180k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
180k
            value, context_tag<Context>{}));
5090
180k
    }
5091
180k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned int>(unsigned int&)
Line
Count
Source
5080
180k
{
5081
180k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
180k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
180k
                                  needs_context_tag>) {
5085
180k
        return make_value_impl(SCN_FWD(arg));
5086
180k
    }
5087
180k
    else {
5088
180k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
180k
            value, context_tag<Context>{}));
5090
180k
    }
5091
180k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, double>(double&)
Line
Count
Source
5080
196k
{
5081
196k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
196k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
196k
                                  needs_context_tag>) {
5085
196k
        return make_value_impl(SCN_FWD(arg));
5086
196k
    }
5087
196k
    else {
5088
196k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
196k
            value, context_tag<Context>{}));
5090
196k
    }
5091
196k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, bool>(bool&)
Line
Count
Source
5080
16.0k
{
5081
16.0k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.0k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.0k
                                  needs_context_tag>) {
5085
16.0k
        return make_value_impl(SCN_FWD(arg));
5086
16.0k
    }
5087
16.0k
    else {
5088
16.0k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.0k
            value, context_tag<Context>{}));
5090
16.0k
    }
5091
16.0k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, void*>(void*&)
Line
Count
Source
5080
16.0k
{
5081
16.0k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.0k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.0k
                                  needs_context_tag>) {
5085
16.0k
        return make_value_impl(SCN_FWD(arg));
5086
16.0k
    }
5087
16.0k
    else {
5088
16.0k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.0k
            value, context_tag<Context>{}));
5090
16.0k
    }
5091
16.0k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5080
16.0k
{
5081
16.0k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
16.0k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
16.0k
                                  needs_context_tag>) {
5085
16.0k
        return make_value_impl(SCN_FWD(arg));
5086
16.0k
    }
5087
16.0k
    else {
5088
16.0k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
16.0k
            value, context_tag<Context>{}));
5090
16.0k
    }
5091
16.0k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5080
39.0M
{
5081
39.0M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
39.0M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
39.0M
                                  needs_context_tag>) {
5085
39.0M
        return make_value_impl(SCN_FWD(arg));
5086
39.0M
    }
5087
39.0M
    else {
5088
39.0M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
39.0M
            value, context_tag<Context>{}));
5090
39.0M
    }
5091
39.0M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5080
19.5M
{
5081
19.5M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
19.5M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
19.5M
                                  needs_context_tag>) {
5085
19.5M
        return make_value_impl(SCN_FWD(arg));
5086
19.5M
    }
5087
19.5M
    else {
5088
19.5M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
19.5M
            value, context_tag<Context>{}));
5090
19.5M
    }
5091
19.5M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, signed char>(signed char&)
Line
Count
Source
5080
677k
{
5081
677k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
677k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
677k
                                  needs_context_tag>) {
5085
677k
        return make_value_impl(SCN_FWD(arg));
5086
677k
    }
5087
677k
    else {
5088
677k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
677k
            value, context_tag<Context>{}));
5090
677k
    }
5091
677k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned char>(unsigned char&)
Line
Count
Source
5080
650k
{
5081
650k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
650k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
650k
                                  needs_context_tag>) {
5085
650k
        return make_value_impl(SCN_FWD(arg));
5086
650k
    }
5087
650k
    else {
5088
650k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
650k
            value, context_tag<Context>{}));
5090
650k
    }
5091
650k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, long long>(long long&)
Line
Count
Source
5080
863k
{
5081
863k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
863k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
863k
                                  needs_context_tag>) {
5085
863k
        return make_value_impl(SCN_FWD(arg));
5086
863k
    }
5087
863k
    else {
5088
863k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
863k
            value, context_tag<Context>{}));
5090
863k
    }
5091
863k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned long long>(unsigned long long&)
Line
Count
Source
5080
741k
{
5081
741k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
741k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
741k
                                  needs_context_tag>) {
5085
741k
        return make_value_impl(SCN_FWD(arg));
5086
741k
    }
5087
741k
    else {
5088
741k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
741k
            value, context_tag<Context>{}));
5090
741k
    }
5091
741k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, signed char>(signed char&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned char>(unsigned char&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, long long>(long long&)
Line
Count
Source
5080
165k
{
5081
165k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
165k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
165k
                                  needs_context_tag>) {
5085
165k
        return make_value_impl(SCN_FWD(arg));
5086
165k
    }
5087
165k
    else {
5088
165k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
165k
            value, context_tag<Context>{}));
5090
165k
    }
5091
165k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned long long>(unsigned long long&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, float>(float&)
Line
Count
Source
5080
1.46M
{
5081
1.46M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.46M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.46M
                                  needs_context_tag>) {
5085
1.46M
        return make_value_impl(SCN_FWD(arg));
5086
1.46M
    }
5087
1.46M
    else {
5088
1.46M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.46M
            value, context_tag<Context>{}));
5090
1.46M
    }
5091
1.46M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, long double>(long double&)
Line
Count
Source
5080
1.60M
{
5081
1.60M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.60M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.60M
                                  needs_context_tag>) {
5085
1.60M
        return make_value_impl(SCN_FWD(arg));
5086
1.60M
    }
5087
1.60M
    else {
5088
1.60M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.60M
            value, context_tag<Context>{}));
5090
1.60M
    }
5091
1.60M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, float>(float&)
Line
Count
Source
5080
180k
{
5081
180k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
180k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
180k
                                  needs_context_tag>) {
5085
180k
        return make_value_impl(SCN_FWD(arg));
5086
180k
    }
5087
180k
    else {
5088
180k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
180k
            value, context_tag<Context>{}));
5090
180k
    }
5091
180k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, long double>(long double&)
Line
Count
Source
5080
180k
{
5081
180k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
180k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
180k
                                  needs_context_tag>) {
5085
180k
        return make_value_impl(SCN_FWD(arg));
5086
180k
    }
5087
180k
    else {
5088
180k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
180k
            value, context_tag<Context>{}));
5090
180k
    }
5091
180k
}
5092
5093
template <typename... Args>
5094
constexpr void check_scan_arg_types()
5095
69.9M
{
5096
69.9M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
69.9M
                  "Scan argument types must be default constructible");
5098
69.9M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
69.9M
                  "Scan argument types must be Destructible");
5100
69.9M
    static_assert(
5101
69.9M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
69.9M
        "Scan argument types must not be references");
5103
69.9M
}
void scn::v3::detail::check_scan_arg_types<char>()
Line
Count
Source
5095
8.03k
{
5096
8.03k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
8.03k
                  "Scan argument types must be default constructible");
5098
8.03k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
8.03k
                  "Scan argument types must be Destructible");
5100
8.03k
    static_assert(
5101
8.03k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
8.03k
        "Scan argument types must not be references");
5103
8.03k
}
void scn::v3::detail::check_scan_arg_types<int>()
Line
Count
Source
5095
1.03M
{
5096
1.03M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.03M
                  "Scan argument types must be default constructible");
5098
1.03M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.03M
                  "Scan argument types must be Destructible");
5100
1.03M
    static_assert(
5101
1.03M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.03M
        "Scan argument types must not be references");
5103
1.03M
}
void scn::v3::detail::check_scan_arg_types<unsigned int>()
Line
Count
Source
5095
921k
{
5096
921k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
921k
                  "Scan argument types must be default constructible");
5098
921k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
921k
                  "Scan argument types must be Destructible");
5100
921k
    static_assert(
5101
921k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
921k
        "Scan argument types must not be references");
5103
921k
}
void scn::v3::detail::check_scan_arg_types<double>()
Line
Count
Source
5095
1.78M
{
5096
1.78M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.78M
                  "Scan argument types must be default constructible");
5098
1.78M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.78M
                  "Scan argument types must be Destructible");
5100
1.78M
    static_assert(
5101
1.78M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.78M
        "Scan argument types must not be references");
5103
1.78M
}
void scn::v3::detail::check_scan_arg_types<bool>()
Line
Count
Source
5095
24.0k
{
5096
24.0k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
24.0k
                  "Scan argument types must be default constructible");
5098
24.0k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
24.0k
                  "Scan argument types must be Destructible");
5100
24.0k
    static_assert(
5101
24.0k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
24.0k
        "Scan argument types must not be references");
5103
24.0k
}
void scn::v3::detail::check_scan_arg_types<void*>()
Line
Count
Source
5095
24.0k
{
5096
24.0k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
24.0k
                  "Scan argument types must be default constructible");
5098
24.0k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
24.0k
                  "Scan argument types must be Destructible");
5100
24.0k
    static_assert(
5101
24.0k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
24.0k
        "Scan argument types must not be references");
5103
24.0k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5095
347k
{
5096
347k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
347k
                  "Scan argument types must be default constructible");
5098
347k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
347k
                  "Scan argument types must be Destructible");
5100
347k
    static_assert(
5101
347k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
347k
        "Scan argument types must not be references");
5103
347k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5095
39.0M
{
5096
39.0M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
39.0M
                  "Scan argument types must be default constructible");
5098
39.0M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
39.0M
                  "Scan argument types must be Destructible");
5100
39.0M
    static_assert(
5101
39.0M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
39.0M
        "Scan argument types must not be references");
5103
39.0M
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5095
168k
{
5096
168k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
168k
                  "Scan argument types must be default constructible");
5098
168k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
168k
                  "Scan argument types must be Destructible");
5100
168k
    static_assert(
5101
168k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
168k
        "Scan argument types must not be references");
5103
168k
}
void scn::v3::detail::check_scan_arg_types<wchar_t>()
Line
Count
Source
5095
16.0k
{
5096
16.0k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
16.0k
                  "Scan argument types must be default constructible");
5098
16.0k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
16.0k
                  "Scan argument types must be Destructible");
5100
16.0k
    static_assert(
5101
16.0k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
16.0k
        "Scan argument types must not be references");
5103
16.0k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5095
19.5M
{
5096
19.5M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
19.5M
                  "Scan argument types must be default constructible");
5098
19.5M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
19.5M
                  "Scan argument types must be Destructible");
5100
19.5M
    static_assert(
5101
19.5M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
19.5M
        "Scan argument types must not be references");
5103
19.5M
}
void scn::v3::detail::check_scan_arg_types<signed char>()
Line
Count
Source
5095
842k
{
5096
842k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
842k
                  "Scan argument types must be default constructible");
5098
842k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
842k
                  "Scan argument types must be Destructible");
5100
842k
    static_assert(
5101
842k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
842k
        "Scan argument types must not be references");
5103
842k
}
void scn::v3::detail::check_scan_arg_types<unsigned char>()
Line
Count
Source
5095
814k
{
5096
814k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
814k
                  "Scan argument types must be default constructible");
5098
814k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
814k
                  "Scan argument types must be Destructible");
5100
814k
    static_assert(
5101
814k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
814k
        "Scan argument types must not be references");
5103
814k
}
void scn::v3::detail::check_scan_arg_types<long long>()
Line
Count
Source
5095
1.02M
{
5096
1.02M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.02M
                  "Scan argument types must be default constructible");
5098
1.02M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.02M
                  "Scan argument types must be Destructible");
5100
1.02M
    static_assert(
5101
1.02M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.02M
        "Scan argument types must not be references");
5103
1.02M
}
void scn::v3::detail::check_scan_arg_types<unsigned long long>()
Line
Count
Source
5095
905k
{
5096
905k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
905k
                  "Scan argument types must be default constructible");
5098
905k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
905k
                  "Scan argument types must be Destructible");
5100
905k
    static_assert(
5101
905k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
905k
        "Scan argument types must not be references");
5103
905k
}
void scn::v3::detail::check_scan_arg_types<float>()
Line
Count
Source
5095
1.64M
{
5096
1.64M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.64M
                  "Scan argument types must be default constructible");
5098
1.64M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.64M
                  "Scan argument types must be Destructible");
5100
1.64M
    static_assert(
5101
1.64M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.64M
        "Scan argument types must not be references");
5103
1.64M
}
void scn::v3::detail::check_scan_arg_types<long double>()
Line
Count
Source
5095
1.78M
{
5096
1.78M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.78M
                  "Scan argument types must be default constructible");
5098
1.78M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.78M
                  "Scan argument types must be Destructible");
5100
1.78M
    static_assert(
5101
1.78M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.78M
        "Scan argument types must not be references");
5103
1.78M
}
5104
5105
enum class scan_arg_store_kind {
5106
    // only built-in types (no custom types), packed
5107
    builtin,
5108
5109
    packed,
5110
    unpacked
5111
};
5112
5113
template <typename Context, typename T>
5114
constexpr basic_scan_arg<Context> make_arg(T& value)
5115
12.6M
{
5116
12.6M
    check_scan_arg_types<T>();
5117
5118
12.6M
    basic_scan_arg<Context> arg;
5119
12.6M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
12.6M
    arg.m_value = make_value<Context>(value);
5121
12.6M
    return arg;
5122
12.6M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, signed char>(signed char&)
Line
Count
Source
5115
52.5k
{
5116
52.5k
    check_scan_arg_types<T>();
5117
5118
52.5k
    basic_scan_arg<Context> arg;
5119
52.5k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
52.5k
    arg.m_value = make_value<Context>(value);
5121
52.5k
    return arg;
5122
52.5k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned char>(unsigned char&)
Line
Count
Source
5115
46.6k
{
5116
46.6k
    check_scan_arg_types<T>();
5117
5118
46.6k
    basic_scan_arg<Context> arg;
5119
46.6k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
46.6k
    arg.m_value = make_value<Context>(value);
5121
46.6k
    return arg;
5122
46.6k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, int>(int&)
Line
Count
Source
5115
60.2k
{
5116
60.2k
    check_scan_arg_types<T>();
5117
5118
60.2k
    basic_scan_arg<Context> arg;
5119
60.2k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
60.2k
    arg.m_value = make_value<Context>(value);
5121
60.2k
    return arg;
5122
60.2k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned int>(unsigned int&)
Line
Count
Source
5115
51.9k
{
5116
51.9k
    check_scan_arg_types<T>();
5117
5118
51.9k
    basic_scan_arg<Context> arg;
5119
51.9k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
51.9k
    arg.m_value = make_value<Context>(value);
5121
51.9k
    return arg;
5122
51.9k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, long long>(long long&)
Line
Count
Source
5115
61.3k
{
5116
61.3k
    check_scan_arg_types<T>();
5117
5118
61.3k
    basic_scan_arg<Context> arg;
5119
61.3k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
61.3k
    arg.m_value = make_value<Context>(value);
5121
61.3k
    return arg;
5122
61.3k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned long long>(unsigned long long&)
Line
Count
Source
5115
52.6k
{
5116
52.6k
    check_scan_arg_types<T>();
5117
5118
52.6k
    basic_scan_arg<Context> arg;
5119
52.6k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
52.6k
    arg.m_value = make_value<Context>(value);
5121
52.6k
    return arg;
5122
52.6k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, signed char>(signed char&)
Line
Count
Source
5115
7.87k
{
5116
7.87k
    check_scan_arg_types<T>();
5117
5118
7.87k
    basic_scan_arg<Context> arg;
5119
7.87k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.87k
    arg.m_value = make_value<Context>(value);
5121
7.87k
    return arg;
5122
7.87k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned char>(unsigned char&)
Line
Count
Source
5115
7.85k
{
5116
7.85k
    check_scan_arg_types<T>();
5117
5118
7.85k
    basic_scan_arg<Context> arg;
5119
7.85k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.85k
    arg.m_value = make_value<Context>(value);
5121
7.85k
    return arg;
5122
7.85k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, int>(int&)
Line
Count
Source
5115
7.89k
{
5116
7.89k
    check_scan_arg_types<T>();
5117
5118
7.89k
    basic_scan_arg<Context> arg;
5119
7.89k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.89k
    arg.m_value = make_value<Context>(value);
5121
7.89k
    return arg;
5122
7.89k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned int>(unsigned int&)
Line
Count
Source
5115
7.86k
{
5116
7.86k
    check_scan_arg_types<T>();
5117
5118
7.86k
    basic_scan_arg<Context> arg;
5119
7.86k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.86k
    arg.m_value = make_value<Context>(value);
5121
7.86k
    return arg;
5122
7.86k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, long long>(long long&)
Line
Count
Source
5115
7.92k
{
5116
7.92k
    check_scan_arg_types<T>();
5117
5118
7.92k
    basic_scan_arg<Context> arg;
5119
7.92k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.92k
    arg.m_value = make_value<Context>(value);
5121
7.92k
    return arg;
5122
7.92k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned long long>(unsigned long long&)
Line
Count
Source
5115
7.89k
{
5116
7.89k
    check_scan_arg_types<T>();
5117
5118
7.89k
    basic_scan_arg<Context> arg;
5119
7.89k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.89k
    arg.m_value = make_value<Context>(value);
5121
7.89k
    return arg;
5122
7.89k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5115
61.9k
{
5116
61.9k
    check_scan_arg_types<T>();
5117
5118
61.9k
    basic_scan_arg<Context> arg;
5119
61.9k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
61.9k
    arg.m_value = make_value<Context>(value);
5121
61.9k
    return arg;
5122
61.9k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5115
30.7k
{
5116
30.7k
    check_scan_arg_types<T>();
5117
5118
30.7k
    basic_scan_arg<Context> arg;
5119
30.7k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
30.7k
    arg.m_value = make_value<Context>(value);
5121
30.7k
    return arg;
5122
30.7k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5115
7.80M
{
5116
7.80M
    check_scan_arg_types<T>();
5117
5118
7.80M
    basic_scan_arg<Context> arg;
5119
7.80M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.80M
    arg.m_value = make_value<Context>(value);
5121
7.80M
    return arg;
5122
7.80M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5115
3.90M
{
5116
3.90M
    check_scan_arg_types<T>();
5117
5118
3.90M
    basic_scan_arg<Context> arg;
5119
3.90M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
3.90M
    arg.m_value = make_value<Context>(value);
5121
3.90M
    return arg;
5122
3.90M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, float>(float&)
Line
Count
Source
5115
139k
{
5116
139k
    check_scan_arg_types<T>();
5117
5118
139k
    basic_scan_arg<Context> arg;
5119
139k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
139k
    arg.m_value = make_value<Context>(value);
5121
139k
    return arg;
5122
139k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, double>(double&)
Line
Count
Source
5115
155k
{
5116
155k
    check_scan_arg_types<T>();
5117
5118
155k
    basic_scan_arg<Context> arg;
5119
155k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
155k
    arg.m_value = make_value<Context>(value);
5121
155k
    return arg;
5122
155k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, long double>(long double&)
Line
Count
Source
5115
157k
{
5116
157k
    check_scan_arg_types<T>();
5117
5118
157k
    basic_scan_arg<Context> arg;
5119
157k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
157k
    arg.m_value = make_value<Context>(value);
5121
157k
    return arg;
5122
157k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, float>(float&)
Line
Count
Source
5115
14.2k
{
5116
14.2k
    check_scan_arg_types<T>();
5117
5118
14.2k
    basic_scan_arg<Context> arg;
5119
14.2k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
14.2k
    arg.m_value = make_value<Context>(value);
5121
14.2k
    return arg;
5122
14.2k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, double>(double&)
Line
Count
Source
5115
14.2k
{
5116
14.2k
    check_scan_arg_types<T>();
5117
5118
14.2k
    basic_scan_arg<Context> arg;
5119
14.2k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
14.2k
    arg.m_value = make_value<Context>(value);
5121
14.2k
    return arg;
5122
14.2k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, long double>(long double&)
Line
Count
Source
5115
14.2k
{
5116
14.2k
    check_scan_arg_types<T>();
5117
5118
14.2k
    basic_scan_arg<Context> arg;
5119
14.2k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
14.2k
    arg.m_value = make_value<Context>(value);
5121
14.2k
    return arg;
5122
14.2k
}
5123
5124
template <scan_arg_store_kind Kind,
5125
          typename Context,
5126
          arg_type,
5127
          typename T,
5128
          typename = std::enable_if_t<Kind == scan_arg_store_kind::builtin>>
5129
constexpr void* make_arg(T& value)
5130
57.3M
{
5131
57.3M
    return make_value<Context>(value).ref_value;
5132
57.3M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)12, char, void>(char&)
Line
Count
Source
5130
8.03k
{
5131
8.03k
    return make_value<Context>(value).ref_value;
5132
8.03k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)3, int, void>(int&)
Line
Count
Source
5130
795k
{
5131
795k
    return make_value<Context>(value).ref_value;
5132
795k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)8, unsigned int, void>(unsigned int&)
Line
Count
Source
5130
689k
{
5131
689k
    return make_value<Context>(value).ref_value;
5132
689k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)17, double, void>(double&)
Line
Count
Source
5130
1.43M
{
5131
1.43M
    return make_value<Context>(value).ref_value;
5132
1.43M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)11, bool, void>(bool&)
Line
Count
Source
5130
8.03k
{
5131
8.03k
    return make_value<Context>(value).ref_value;
5132
8.03k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)15, void*, void>(void*&)
Line
Count
Source
5130
8.03k
{
5131
8.03k
    return make_value<Context>(value).ref_value;
5132
8.03k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5130
269k
{
5131
269k
    return make_value<Context>(value).ref_value;
5132
269k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5130
8.03k
{
5131
8.03k
    return make_value<Context>(value).ref_value;
5132
8.03k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)19, std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5130
138k
{
5131
138k
    return make_value<Context>(value).ref_value;
5132
138k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)13, wchar_t, void>(wchar_t&)
Line
Count
Source
5130
16.0k
{
5131
16.0k
    return make_value<Context>(value).ref_value;
5132
16.0k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)3, int, void>(int&)
Line
Count
Source
5130
173k
{
5131
173k
    return make_value<Context>(value).ref_value;
5132
173k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)8, unsigned int, void>(unsigned int&)
Line
Count
Source
5130
172k
{
5131
172k
    return make_value<Context>(value).ref_value;
5132
172k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)17, double, void>(double&)
Line
Count
Source
5130
182k
{
5131
182k
    return make_value<Context>(value).ref_value;
5132
182k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)11, bool, void>(bool&)
Line
Count
Source
5130
16.0k
{
5131
16.0k
    return make_value<Context>(value).ref_value;
5132
16.0k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)15, void*, void>(void*&)
Line
Count
Source
5130
16.0k
{
5131
16.0k
    return make_value<Context>(value).ref_value;
5132
16.0k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5130
16.0k
{
5131
16.0k
    return make_value<Context>(value).ref_value;
5132
16.0k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5130
31.2M
{
5131
31.2M
    return make_value<Context>(value).ref_value;
5132
31.2M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)20, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5130
15.6M
{
5131
15.6M
    return make_value<Context>(value).ref_value;
5132
15.6M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)1, signed char, void>(signed char&)
Line
Count
Source
5130
624k
{
5131
624k
    return make_value<Context>(value).ref_value;
5132
624k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)6, unsigned char, void>(unsigned char&)
Line
Count
Source
5130
603k
{
5131
603k
    return make_value<Context>(value).ref_value;
5132
603k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)5, long long, void>(long long&)
Line
Count
Source
5130
801k
{
5131
801k
    return make_value<Context>(value).ref_value;
5132
801k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)10, unsigned long long, void>(unsigned long long&)
Line
Count
Source
5130
688k
{
5131
688k
    return make_value<Context>(value).ref_value;
5132
688k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)1, signed char, void>(signed char&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)6, unsigned char, void>(unsigned char&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)5, long long, void>(long long&)
Line
Count
Source
5130
157k
{
5131
157k
    return make_value<Context>(value).ref_value;
5132
157k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)10, unsigned long long, void>(unsigned long long&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)16, float, void>(float&)
Line
Count
Source
5130
1.32M
{
5131
1.32M
    return make_value<Context>(value).ref_value;
5132
1.32M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)18, long double, void>(long double&)
Line
Count
Source
5130
1.44M
{
5131
1.44M
    return make_value<Context>(value).ref_value;
5132
1.44M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)16, float, void>(float&)
Line
Count
Source
5130
165k
{
5131
165k
    return make_value<Context>(value).ref_value;
5132
165k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)18, long double, void>(long double&)
Line
Count
Source
5130
166k
{
5131
166k
    return make_value<Context>(value).ref_value;
5132
166k
}
5133
template <scan_arg_store_kind Kind,
5134
          typename Context,
5135
          arg_type,
5136
          typename T,
5137
          typename = std::enable_if_t<Kind == scan_arg_store_kind::packed>>
5138
constexpr arg_value make_arg(T& value)
5139
{
5140
    return make_value<Context>(value);
5141
}
5142
template <scan_arg_store_kind Kind,
5143
          typename Context,
5144
          arg_type,
5145
          typename T,
5146
          typename = std::enable_if_t<Kind == scan_arg_store_kind::unpacked>>
5147
constexpr basic_scan_arg<Context> make_arg(T&& value)
5148
{
5149
    return make_arg<Context>(SCN_FWD(value));
5150
}
5151
5152
template <typename Context>
5153
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg);
5154
}  // namespace detail
5155
5156
template <typename Visitor, typename Ctx>
5157
constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5158
                                        basic_scan_arg<Ctx>& arg);
5159
5160
/**
5161
 * Type-erased scanning argument.
5162
 *
5163
 * Contains a pointer to the value contained in a `scan_arg_store`.
5164
 */
5165
template <typename Context>
5166
class basic_scan_arg {
5167
public:
5168
    /**
5169
     * Enables scanning of a user-defined type.
5170
     *
5171
     * Contains a pointer to the value contained in a `scan_arg_store`, and
5172
     * a callback for parsing the format string, and scanning the value.
5173
     *
5174
     * \see scn::visit_scan_arg
5175
     */
5176
    class handle {
5177
    public:
5178
        /**
5179
         * Parse the format string in `parse_ctx`, and scan the value from
5180
         * `ctx`.
5181
         *
5182
         * \return Any error returned by the scanner
5183
         */
5184
        scan_error scan(typename Context::parse_context_type& parse_ctx,
5185
                        Context& ctx) const
5186
0
        {
5187
0
            return m_custom.scan(m_custom.value, &parse_ctx, &ctx);
5188
0
        }
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::handle::scan(scn::v3::basic_scan_parse_context<char>&, scn::v3::basic_scan_context<char>&) const
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::handle::scan(scn::v3::basic_scan_parse_context<wchar_t>&, scn::v3::basic_scan_context<wchar_t>&) const
5189
5190
    private:
5191
0
        explicit handle(detail::custom_value_type custom) : m_custom(custom) {}
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::handle::handle(scn::v3::detail::custom_value_type)
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::handle::handle(scn::v3::detail::custom_value_type)
5192
5193
        template <typename Visitor, typename C>
5194
        friend constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5195
                                                       basic_scan_arg<C>& arg);
5196
5197
        detail::custom_value_type m_custom;
5198
    };
5199
5200
    /// Construct a `basic_scan_arg` which doesn't contain an argument.
5201
69.8M
    constexpr basic_scan_arg() = default;
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::basic_scan_arg()
Line
Count
Source
5201
9.70M
    constexpr basic_scan_arg() = default;
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::basic_scan_arg()
Line
Count
Source
5201
60.1M
    constexpr basic_scan_arg() = default;
5202
5203
    /**
5204
     * @return `true` if `*this` contains an argument
5205
     */
5206
    constexpr explicit operator bool() const noexcept
5207
101M
    {
5208
101M
        return m_type != detail::arg_type::none_type;
5209
101M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::operator bool() const
Line
Count
Source
5207
16.6M
    {
5208
16.6M
        return m_type != detail::arg_type::none_type;
5209
16.6M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::operator bool() const
Line
Count
Source
5207
84.5M
    {
5208
84.5M
        return m_type != detail::arg_type::none_type;
5209
84.5M
    }
5210
5211
    SCN_NODISCARD constexpr detail::arg_type type() const
5212
63.6M
    {
5213
63.6M
        return m_type;
5214
63.6M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::type() const
Line
Count
Source
5212
14.1M
    {
5213
14.1M
        return m_type;
5214
14.1M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::type() const
Line
Count
Source
5212
49.4M
    {
5213
49.4M
        return m_type;
5214
49.4M
    }
5215
5216
    SCN_NODISCARD constexpr detail::arg_value& value()
5217
    {
5218
        return m_value;
5219
    }
5220
    SCN_NODISCARD constexpr const detail::arg_value& value() const
5221
    {
5222
        return m_value;
5223
    }
5224
5225
private:
5226
    template <typename ContextType, typename T>
5227
    friend constexpr basic_scan_arg<ContextType> detail::make_arg(T& value);
5228
5229
    template <typename C>
5230
    friend constexpr detail::arg_value& detail::get_arg_value(
5231
        basic_scan_arg<C>& arg);
5232
5233
    template <typename Visitor, typename C>
5234
    friend constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5235
                                                   basic_scan_arg<C>& arg);
5236
5237
    friend class basic_scan_args<Context>;
5238
5239
    detail::arg_value m_value{};
5240
    detail::arg_type m_type{detail::arg_type::none_type};
5241
};
5242
5243
namespace detail {
5244
template <typename Context>
5245
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg)
5246
{
5247
    return arg.m_value;
5248
}
5249
5250
template <typename CharT>
5251
constexpr bool all_types_builtin()
5252
0
{
5253
0
    return true;
5254
0
}
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t>()
5255
template <typename CharT, typename T, typename... Args>
5256
constexpr bool all_types_builtin()
5257
0
{
5258
0
    return mapped_type_constant<T, CharT>::value != arg_type::custom_type &&
5259
0
           all_types_builtin<CharT, Args...>();
5260
0
}
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, bool>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, void*>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, wchar_t>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, bool>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, void*>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, signed char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, signed char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, float>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, long double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, float>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, long double>()
5261
5262
template <typename CharT, typename... Args>
5263
constexpr scan_arg_store_kind determine_arg_store_kind()
5264
0
{
5265
0
    if (sizeof...(Args) > max_packed_args) {
5266
0
        return scan_arg_store_kind::unpacked;
5267
0
    }
5268
0
#if !(SCN_CLANG && SCN_APPLE)
5269
0
    // This doesn't work on Apple Clang. I don't know why
5270
0
    if (all_types_builtin<CharT, Args...>()) {
5271
0
        return scan_arg_store_kind::builtin;
5272
0
    }
5273
0
#endif
5274
0
    return scan_arg_store_kind::packed;
5275
0
}
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, bool>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, void*>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, wchar_t>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, bool>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, void*>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, signed char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, signed char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, float>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, long double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, float>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, long double>()
5276
5277
template <scan_arg_store_kind Kind, typename CharT, typename... Args>
5278
constexpr size_t compute_arg_store_desc()
5279
0
{
5280
0
    if constexpr (Kind == scan_arg_store_kind::builtin) {
5281
0
        return encode_types<CharT, Args...>();
5282
0
    }
5283
0
    else if constexpr (Kind == scan_arg_store_kind::packed) {
5284
0
        return encode_types<CharT, Args...>() | has_custom_types_bit;
5285
0
    }
5286
0
    else {
5287
0
        return sizeof...(Args) | is_unpacked_bit;
5288
0
    }
5289
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, long double>()
5290
5291
template <typename Context, typename... Args>
5292
class scan_arg_store {
5293
public:
5294
    static constexpr scan_arg_store_kind kind =
5295
        determine_arg_store_kind<typename Context::char_type, Args...>();
5296
    static constexpr size_t desc =
5297
        compute_arg_store_desc<kind, typename Context::char_type, Args...>();
5298
5299
    using argptr_type = std::conditional_t<
5300
        kind == scan_arg_store_kind::builtin,
5301
        void*,
5302
        std::conditional_t<kind == scan_arg_store_kind::packed,
5303
                           arg_value,
5304
                           basic_scan_arg<Context>>>;
5305
    using argptrs_type = std::array<argptr_type, sizeof...(Args)>;
5306
5307
    constexpr scan_arg_store()
5308
        : m_argptrs(std::apply(make_argptrs<Args...>, m_args))
5309
57.3M
    {
5310
57.3M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::scan_arg_store()
Line
Count
Source
5309
8.03k
    {
5310
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::scan_arg_store()
Line
Count
Source
5309
795k
    {
5310
795k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::scan_arg_store()
Line
Count
Source
5309
689k
    {
5310
689k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::scan_arg_store()
Line
Count
Source
5309
1.43M
    {
5310
1.43M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::scan_arg_store()
Line
Count
Source
5309
8.03k
    {
5310
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::scan_arg_store()
Line
Count
Source
5309
8.03k
    {
5310
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store()
Line
Count
Source
5309
269k
    {
5310
269k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
8.03k
    {
5310
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_arg_store()
Line
Count
Source
5309
138k
    {
5310
138k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::scan_arg_store()
Line
Count
Source
5309
16.0k
    {
5310
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::scan_arg_store()
Line
Count
Source
5309
173k
    {
5310
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::scan_arg_store()
Line
Count
Source
5309
172k
    {
5310
172k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::scan_arg_store()
Line
Count
Source
5309
182k
    {
5310
182k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::scan_arg_store()
Line
Count
Source
5309
16.0k
    {
5310
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::scan_arg_store()
Line
Count
Source
5309
16.0k
    {
5310
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store()
Line
Count
Source
5309
16.0k
    {
5310
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
31.2M
    {
5310
31.2M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
15.6M
    {
5310
15.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::scan_arg_store()
Line
Count
Source
5309
624k
    {
5310
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::scan_arg_store()
Line
Count
Source
5309
603k
    {
5310
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::scan_arg_store()
Line
Count
Source
5309
801k
    {
5310
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::scan_arg_store()
Line
Count
Source
5309
688k
    {
5310
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::scan_arg_store()
Line
Count
Source
5309
157k
    {
5310
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::scan_arg_store()
Line
Count
Source
5309
1.32M
    {
5310
1.32M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::scan_arg_store()
Line
Count
Source
5309
1.44M
    {
5310
1.44M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::scan_arg_store()
Line
Count
Source
5309
165k
    {
5310
165k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::scan_arg_store()
Line
Count
Source
5309
166k
    {
5310
166k
    }
5311
5312
    constexpr explicit scan_arg_store(std::tuple<Args...>&& a)
5313
        : m_args(std::move(a)),
5314
          m_argptrs(std::apply(make_argptrs<Args...>, m_args))
5315
    {
5316
    }
5317
5318
    template <typename... A>
5319
    static constexpr argptrs_type make_argptrs(A&... args)
5320
57.3M
    {
5321
57.3M
        return {detail::make_arg<
5322
57.3M
            kind, Context,
5323
57.3M
            mapped_type_constant<remove_cvref_t<A>,
5324
57.3M
                                 typename Context::char_type>::value>(args)...};
5325
57.3M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::make_argptrs<char>(char&)
Line
Count
Source
5320
8.03k
    {
5321
8.03k
        return {detail::make_arg<
5322
8.03k
            kind, Context,
5323
8.03k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.03k
                                 typename Context::char_type>::value>(args)...};
5325
8.03k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::make_argptrs<int>(int&)
Line
Count
Source
5320
795k
    {
5321
795k
        return {detail::make_arg<
5322
795k
            kind, Context,
5323
795k
            mapped_type_constant<remove_cvref_t<A>,
5324
795k
                                 typename Context::char_type>::value>(args)...};
5325
795k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
5320
689k
    {
5321
689k
        return {detail::make_arg<
5322
689k
            kind, Context,
5323
689k
            mapped_type_constant<remove_cvref_t<A>,
5324
689k
                                 typename Context::char_type>::value>(args)...};
5325
689k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::make_argptrs<double>(double&)
Line
Count
Source
5320
1.43M
    {
5321
1.43M
        return {detail::make_arg<
5322
1.43M
            kind, Context,
5323
1.43M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.43M
                                 typename Context::char_type>::value>(args)...};
5325
1.43M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
5320
8.03k
    {
5321
8.03k
        return {detail::make_arg<
5322
8.03k
            kind, Context,
5323
8.03k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.03k
                                 typename Context::char_type>::value>(args)...};
5325
8.03k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
5320
8.03k
    {
5321
8.03k
        return {detail::make_arg<
5322
8.03k
            kind, Context,
5323
8.03k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.03k
                                 typename Context::char_type>::value>(args)...};
5325
8.03k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5320
269k
    {
5321
269k
        return {detail::make_arg<
5322
269k
            kind, Context,
5323
269k
            mapped_type_constant<remove_cvref_t<A>,
5324
269k
                                 typename Context::char_type>::value>(args)...};
5325
269k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5320
8.03k
    {
5321
8.03k
        return {detail::make_arg<
5322
8.03k
            kind, Context,
5323
8.03k
            mapped_type_constant<remove_cvref_t<A>,
5324
8.03k
                                 typename Context::char_type>::value>(args)...};
5325
8.03k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::make_argptrs<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5320
138k
    {
5321
138k
        return {detail::make_arg<
5322
138k
            kind, Context,
5323
138k
            mapped_type_constant<remove_cvref_t<A>,
5324
138k
                                 typename Context::char_type>::value>(args)...};
5325
138k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::make_argptrs<wchar_t>(wchar_t&)
Line
Count
Source
5320
16.0k
    {
5321
16.0k
        return {detail::make_arg<
5322
16.0k
            kind, Context,
5323
16.0k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.0k
                                 typename Context::char_type>::value>(args)...};
5325
16.0k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::make_argptrs<int>(int&)
Line
Count
Source
5320
173k
    {
5321
173k
        return {detail::make_arg<
5322
173k
            kind, Context,
5323
173k
            mapped_type_constant<remove_cvref_t<A>,
5324
173k
                                 typename Context::char_type>::value>(args)...};
5325
173k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
5320
172k
    {
5321
172k
        return {detail::make_arg<
5322
172k
            kind, Context,
5323
172k
            mapped_type_constant<remove_cvref_t<A>,
5324
172k
                                 typename Context::char_type>::value>(args)...};
5325
172k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::make_argptrs<double>(double&)
Line
Count
Source
5320
182k
    {
5321
182k
        return {detail::make_arg<
5322
182k
            kind, Context,
5323
182k
            mapped_type_constant<remove_cvref_t<A>,
5324
182k
                                 typename Context::char_type>::value>(args)...};
5325
182k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
5320
16.0k
    {
5321
16.0k
        return {detail::make_arg<
5322
16.0k
            kind, Context,
5323
16.0k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.0k
                                 typename Context::char_type>::value>(args)...};
5325
16.0k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
5320
16.0k
    {
5321
16.0k
        return {detail::make_arg<
5322
16.0k
            kind, Context,
5323
16.0k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.0k
                                 typename Context::char_type>::value>(args)...};
5325
16.0k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5320
16.0k
    {
5321
16.0k
        return {detail::make_arg<
5322
16.0k
            kind, Context,
5323
16.0k
            mapped_type_constant<remove_cvref_t<A>,
5324
16.0k
                                 typename Context::char_type>::value>(args)...};
5325
16.0k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5320
31.2M
    {
5321
31.2M
        return {detail::make_arg<
5322
31.2M
            kind, Context,
5323
31.2M
            mapped_type_constant<remove_cvref_t<A>,
5324
31.2M
                                 typename Context::char_type>::value>(args)...};
5325
31.2M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::make_argptrs<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5320
15.6M
    {
5321
15.6M
        return {detail::make_arg<
5322
15.6M
            kind, Context,
5323
15.6M
            mapped_type_constant<remove_cvref_t<A>,
5324
15.6M
                                 typename Context::char_type>::value>(args)...};
5325
15.6M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::make_argptrs<signed char>(signed char&)
Line
Count
Source
5320
624k
    {
5321
624k
        return {detail::make_arg<
5322
624k
            kind, Context,
5323
624k
            mapped_type_constant<remove_cvref_t<A>,
5324
624k
                                 typename Context::char_type>::value>(args)...};
5325
624k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::make_argptrs<unsigned char>(unsigned char&)
Line
Count
Source
5320
603k
    {
5321
603k
        return {detail::make_arg<
5322
603k
            kind, Context,
5323
603k
            mapped_type_constant<remove_cvref_t<A>,
5324
603k
                                 typename Context::char_type>::value>(args)...};
5325
603k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::make_argptrs<long long>(long long&)
Line
Count
Source
5320
801k
    {
5321
801k
        return {detail::make_arg<
5322
801k
            kind, Context,
5323
801k
            mapped_type_constant<remove_cvref_t<A>,
5324
801k
                                 typename Context::char_type>::value>(args)...};
5325
801k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::make_argptrs<unsigned long long>(unsigned long long&)
Line
Count
Source
5320
688k
    {
5321
688k
        return {detail::make_arg<
5322
688k
            kind, Context,
5323
688k
            mapped_type_constant<remove_cvref_t<A>,
5324
688k
                                 typename Context::char_type>::value>(args)...};
5325
688k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::make_argptrs<signed char>(signed char&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::make_argptrs<unsigned char>(unsigned char&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::make_argptrs<long long>(long long&)
Line
Count
Source
5320
157k
    {
5321
157k
        return {detail::make_arg<
5322
157k
            kind, Context,
5323
157k
            mapped_type_constant<remove_cvref_t<A>,
5324
157k
                                 typename Context::char_type>::value>(args)...};
5325
157k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::make_argptrs<unsigned long long>(unsigned long long&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::make_argptrs<float>(float&)
Line
Count
Source
5320
1.32M
    {
5321
1.32M
        return {detail::make_arg<
5322
1.32M
            kind, Context,
5323
1.32M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.32M
                                 typename Context::char_type>::value>(args)...};
5325
1.32M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::make_argptrs<long double>(long double&)
Line
Count
Source
5320
1.44M
    {
5321
1.44M
        return {detail::make_arg<
5322
1.44M
            kind, Context,
5323
1.44M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.44M
                                 typename Context::char_type>::value>(args)...};
5325
1.44M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::make_argptrs<float>(float&)
Line
Count
Source
5320
165k
    {
5321
165k
        return {detail::make_arg<
5322
165k
            kind, Context,
5323
165k
            mapped_type_constant<remove_cvref_t<A>,
5324
165k
                                 typename Context::char_type>::value>(args)...};
5325
165k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::make_argptrs<long double>(long double&)
Line
Count
Source
5320
166k
    {
5321
166k
        return {detail::make_arg<
5322
166k
            kind, Context,
5323
166k
            mapped_type_constant<remove_cvref_t<A>,
5324
166k
                                 typename Context::char_type>::value>(args)...};
5325
166k
    }
5326
5327
    scan_arg_store(const scan_arg_store&) = delete;
5328
    scan_arg_store(scan_arg_store&&) = delete;
5329
    scan_arg_store& operator=(const scan_arg_store&) = delete;
5330
    scan_arg_store& operator=(scan_arg_store&&) = delete;
5331
31.5M
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_arg_store()
Line
Count
Source
5331
269k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_arg_store()
Line
Count
Source
5331
8.03k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_arg_store()
Line
Count
Source
5331
16.0k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_arg_store()
Line
Count
Source
5331
31.2M
    ~scan_arg_store() = default;
5332
5333
    std::tuple<Args...>& args()
5334
57.3M
    {
5335
57.3M
        return m_args;
5336
57.3M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::args()
Line
Count
Source
5334
8.03k
    {
5335
8.03k
        return m_args;
5336
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::args()
Line
Count
Source
5334
795k
    {
5335
795k
        return m_args;
5336
795k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::args()
Line
Count
Source
5334
689k
    {
5335
689k
        return m_args;
5336
689k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::args()
Line
Count
Source
5334
1.43M
    {
5335
1.43M
        return m_args;
5336
1.43M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::args()
Line
Count
Source
5334
8.03k
    {
5335
8.03k
        return m_args;
5336
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::args()
Line
Count
Source
5334
8.03k
    {
5335
8.03k
        return m_args;
5336
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::args()
Line
Count
Source
5334
269k
    {
5335
269k
        return m_args;
5336
269k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::args()
Line
Count
Source
5334
8.03k
    {
5335
8.03k
        return m_args;
5336
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::args()
Line
Count
Source
5334
138k
    {
5335
138k
        return m_args;
5336
138k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::args()
Line
Count
Source
5334
16.0k
    {
5335
16.0k
        return m_args;
5336
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::args()
Line
Count
Source
5334
173k
    {
5335
173k
        return m_args;
5336
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::args()
Line
Count
Source
5334
172k
    {
5335
172k
        return m_args;
5336
172k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::args()
Line
Count
Source
5334
182k
    {
5335
182k
        return m_args;
5336
182k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::args()
Line
Count
Source
5334
16.0k
    {
5335
16.0k
        return m_args;
5336
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::args()
Line
Count
Source
5334
16.0k
    {
5335
16.0k
        return m_args;
5336
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::args()
Line
Count
Source
5334
16.0k
    {
5335
16.0k
        return m_args;
5336
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::args()
Line
Count
Source
5334
31.2M
    {
5335
31.2M
        return m_args;
5336
31.2M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::args()
Line
Count
Source
5334
15.6M
    {
5335
15.6M
        return m_args;
5336
15.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::args()
Line
Count
Source
5334
624k
    {
5335
624k
        return m_args;
5336
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::args()
Line
Count
Source
5334
603k
    {
5335
603k
        return m_args;
5336
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::args()
Line
Count
Source
5334
801k
    {
5335
801k
        return m_args;
5336
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::args()
Line
Count
Source
5334
688k
    {
5335
688k
        return m_args;
5336
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::args()
Line
Count
Source
5334
157k
    {
5335
157k
        return m_args;
5336
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::args()
Line
Count
Source
5334
1.32M
    {
5335
1.32M
        return m_args;
5336
1.32M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::args()
Line
Count
Source
5334
1.44M
    {
5335
1.44M
        return m_args;
5336
1.44M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::args()
Line
Count
Source
5334
165k
    {
5335
165k
        return m_args;
5336
165k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::args()
Line
Count
Source
5334
166k
    {
5335
166k
        return m_args;
5336
166k
    }
5337
5338
    argptrs_type& arg_pointers()
5339
57.3M
    {
5340
57.3M
        return m_argptrs;
5341
57.3M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::arg_pointers()
Line
Count
Source
5339
8.03k
    {
5340
8.03k
        return m_argptrs;
5341
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::arg_pointers()
Line
Count
Source
5339
795k
    {
5340
795k
        return m_argptrs;
5341
795k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::arg_pointers()
Line
Count
Source
5339
689k
    {
5340
689k
        return m_argptrs;
5341
689k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::arg_pointers()
Line
Count
Source
5339
1.43M
    {
5340
1.43M
        return m_argptrs;
5341
1.43M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::arg_pointers()
Line
Count
Source
5339
8.03k
    {
5340
8.03k
        return m_argptrs;
5341
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::arg_pointers()
Line
Count
Source
5339
8.03k
    {
5340
8.03k
        return m_argptrs;
5341
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::arg_pointers()
Line
Count
Source
5339
269k
    {
5340
269k
        return m_argptrs;
5341
269k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
8.03k
    {
5340
8.03k
        return m_argptrs;
5341
8.03k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::arg_pointers()
Line
Count
Source
5339
138k
    {
5340
138k
        return m_argptrs;
5341
138k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::arg_pointers()
Line
Count
Source
5339
16.0k
    {
5340
16.0k
        return m_argptrs;
5341
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::arg_pointers()
Line
Count
Source
5339
173k
    {
5340
173k
        return m_argptrs;
5341
173k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::arg_pointers()
Line
Count
Source
5339
172k
    {
5340
172k
        return m_argptrs;
5341
172k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::arg_pointers()
Line
Count
Source
5339
182k
    {
5340
182k
        return m_argptrs;
5341
182k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::arg_pointers()
Line
Count
Source
5339
16.0k
    {
5340
16.0k
        return m_argptrs;
5341
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::arg_pointers()
Line
Count
Source
5339
16.0k
    {
5340
16.0k
        return m_argptrs;
5341
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::arg_pointers()
Line
Count
Source
5339
16.0k
    {
5340
16.0k
        return m_argptrs;
5341
16.0k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
31.2M
    {
5340
31.2M
        return m_argptrs;
5341
31.2M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
15.6M
    {
5340
15.6M
        return m_argptrs;
5341
15.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::arg_pointers()
Line
Count
Source
5339
624k
    {
5340
624k
        return m_argptrs;
5341
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::arg_pointers()
Line
Count
Source
5339
603k
    {
5340
603k
        return m_argptrs;
5341
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::arg_pointers()
Line
Count
Source
5339
801k
    {
5340
801k
        return m_argptrs;
5341
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::arg_pointers()
Line
Count
Source
5339
688k
    {
5340
688k
        return m_argptrs;
5341
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::arg_pointers()
Line
Count
Source
5339
157k
    {
5340
157k
        return m_argptrs;
5341
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::arg_pointers()
Line
Count
Source
5339
1.32M
    {
5340
1.32M
        return m_argptrs;
5341
1.32M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::arg_pointers()
Line
Count
Source
5339
1.44M
    {
5340
1.44M
        return m_argptrs;
5341
1.44M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::arg_pointers()
Line
Count
Source
5339
165k
    {
5340
165k
        return m_argptrs;
5341
165k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::arg_pointers()
Line
Count
Source
5339
166k
    {
5340
166k
        return m_argptrs;
5341
166k
    }
5342
5343
private:
5344
    std::tuple<Args...> m_args;
5345
    argptrs_type m_argptrs;
5346
};
5347
5348
}  // namespace detail
5349
5350
/**
5351
 * Constructs a `scan_arg_store` object, associated with `Context`,
5352
 * that contains value-initialized values of types `Args...`.
5353
 */
5354
template <typename Context = scan_context, typename... Args>
5355
constexpr auto make_scan_args()
5356
57.3M
{
5357
57.3M
    detail::check_scan_arg_types<Args...>();
5358
57.3M
    return detail::scan_arg_store<Context, Args...>{};
5359
57.3M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, char>()
Line
Count
Source
5356
8.03k
{
5357
8.03k
    detail::check_scan_arg_types<Args...>();
5358
8.03k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.03k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, int>()
Line
Count
Source
5356
795k
{
5357
795k
    detail::check_scan_arg_types<Args...>();
5358
795k
    return detail::scan_arg_store<Context, Args...>{};
5359
795k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned int>()
Line
Count
Source
5356
689k
{
5357
689k
    detail::check_scan_arg_types<Args...>();
5358
689k
    return detail::scan_arg_store<Context, Args...>{};
5359
689k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, double>()
Line
Count
Source
5356
1.43M
{
5357
1.43M
    detail::check_scan_arg_types<Args...>();
5358
1.43M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.43M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, bool>()
Line
Count
Source
5356
8.03k
{
5357
8.03k
    detail::check_scan_arg_types<Args...>();
5358
8.03k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.03k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, void*>()
Line
Count
Source
5356
8.03k
{
5357
8.03k
    detail::check_scan_arg_types<Args...>();
5358
8.03k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.03k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5356
269k
{
5357
269k
    detail::check_scan_arg_types<Args...>();
5358
269k
    return detail::scan_arg_store<Context, Args...>{};
5359
269k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5356
8.03k
{
5357
8.03k
    detail::check_scan_arg_types<Args...>();
5358
8.03k
    return detail::scan_arg_store<Context, Args...>{};
5359
8.03k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5356
138k
{
5357
138k
    detail::check_scan_arg_types<Args...>();
5358
138k
    return detail::scan_arg_store<Context, Args...>{};
5359
138k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, wchar_t>()
Line
Count
Source
5356
16.0k
{
5357
16.0k
    detail::check_scan_arg_types<Args...>();
5358
16.0k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.0k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, int>()
Line
Count
Source
5356
173k
{
5357
173k
    detail::check_scan_arg_types<Args...>();
5358
173k
    return detail::scan_arg_store<Context, Args...>{};
5359
173k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned int>()
Line
Count
Source
5356
172k
{
5357
172k
    detail::check_scan_arg_types<Args...>();
5358
172k
    return detail::scan_arg_store<Context, Args...>{};
5359
172k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, double>()
Line
Count
Source
5356
182k
{
5357
182k
    detail::check_scan_arg_types<Args...>();
5358
182k
    return detail::scan_arg_store<Context, Args...>{};
5359
182k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, bool>()
Line
Count
Source
5356
16.0k
{
5357
16.0k
    detail::check_scan_arg_types<Args...>();
5358
16.0k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.0k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, void*>()
Line
Count
Source
5356
16.0k
{
5357
16.0k
    detail::check_scan_arg_types<Args...>();
5358
16.0k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.0k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5356
16.0k
{
5357
16.0k
    detail::check_scan_arg_types<Args...>();
5358
16.0k
    return detail::scan_arg_store<Context, Args...>{};
5359
16.0k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5356
31.2M
{
5357
31.2M
    detail::check_scan_arg_types<Args...>();
5358
31.2M
    return detail::scan_arg_store<Context, Args...>{};
5359
31.2M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5356
15.6M
{
5357
15.6M
    detail::check_scan_arg_types<Args...>();
5358
15.6M
    return detail::scan_arg_store<Context, Args...>{};
5359
15.6M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, signed char>()
Line
Count
Source
5356
624k
{
5357
624k
    detail::check_scan_arg_types<Args...>();
5358
624k
    return detail::scan_arg_store<Context, Args...>{};
5359
624k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned char>()
Line
Count
Source
5356
603k
{
5357
603k
    detail::check_scan_arg_types<Args...>();
5358
603k
    return detail::scan_arg_store<Context, Args...>{};
5359
603k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, long long>()
Line
Count
Source
5356
801k
{
5357
801k
    detail::check_scan_arg_types<Args...>();
5358
801k
    return detail::scan_arg_store<Context, Args...>{};
5359
801k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned long long>()
Line
Count
Source
5356
688k
{
5357
688k
    detail::check_scan_arg_types<Args...>();
5358
688k
    return detail::scan_arg_store<Context, Args...>{};
5359
688k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, signed char>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned char>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, long long>()
Line
Count
Source
5356
157k
{
5357
157k
    detail::check_scan_arg_types<Args...>();
5358
157k
    return detail::scan_arg_store<Context, Args...>{};
5359
157k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned long long>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, float>()
Line
Count
Source
5356
1.32M
{
5357
1.32M
    detail::check_scan_arg_types<Args...>();
5358
1.32M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.32M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, long double>()
Line
Count
Source
5356
1.44M
{
5357
1.44M
    detail::check_scan_arg_types<Args...>();
5358
1.44M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.44M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, float>()
Line
Count
Source
5356
165k
{
5357
165k
    detail::check_scan_arg_types<Args...>();
5358
165k
    return detail::scan_arg_store<Context, Args...>{};
5359
165k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, long double>()
Line
Count
Source
5356
166k
{
5357
166k
    detail::check_scan_arg_types<Args...>();
5358
166k
    return detail::scan_arg_store<Context, Args...>{};
5359
166k
}
5360
/**
5361
 * Constructs a `scan_arg_store` object, associated with `Context`,
5362
 * that contains `values`.
5363
 */
5364
template <typename Context = scan_context, typename... Args>
5365
constexpr auto make_scan_args(std::tuple<Args...>&& values)
5366
{
5367
    detail::check_scan_arg_types<Args...>();
5368
    return detail::scan_arg_store<Context, Args...>{SCN_MOVE(values)};
5369
}
5370
5371
/**
5372
 * A view over a collection of scanning arguments (`scan_arg_store`).
5373
 *
5374
 * Passed to `scn::vscan`, where it's automatically constructed from a
5375
 * `scan_arg_store`.
5376
 */
5377
template <typename Context>
5378
class basic_scan_args {
5379
public:
5380
12.6M
    constexpr basic_scan_args() = default;
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args()
Line
Count
Source
5380
871k
    constexpr basic_scan_args() = default;
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args()
Line
Count
Source
5380
11.8M
    constexpr basic_scan_args() = default;
5381
5382
    template <typename... Args>
5383
    SCN_IMPLICIT constexpr basic_scan_args(
5384
        detail::scan_arg_store<Context, Args...>& store)
5385
        : basic_scan_args(store.desc, store.arg_pointers().data())
5386
57.3M
    {
5387
57.3M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>&)
Line
Count
Source
5386
8.03k
    {
5387
8.03k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>&)
Line
Count
Source
5386
795k
    {
5387
795k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>&)
Line
Count
Source
5386
689k
    {
5387
689k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>&)
Line
Count
Source
5386
1.43M
    {
5387
1.43M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<bool>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>&)
Line
Count
Source
5386
8.03k
    {
5387
8.03k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<void*>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>&)
Line
Count
Source
5386
8.03k
    {
5387
8.03k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5386
269k
    {
5387
269k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5386
8.03k
    {
5387
8.03k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
5386
138k
    {
5387
138k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<wchar_t>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>&)
Line
Count
Source
5386
16.0k
    {
5387
16.0k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>&)
Line
Count
Source
5386
173k
    {
5387
173k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>&)
Line
Count
Source
5386
172k
    {
5387
172k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>&)
Line
Count
Source
5386
182k
    {
5387
182k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<bool>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>&)
Line
Count
Source
5386
16.0k
    {
5387
16.0k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<void*>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>&)
Line
Count
Source
5386
16.0k
    {
5387
16.0k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5386
16.0k
    {
5387
16.0k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5386
31.2M
    {
5387
31.2M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
5386
15.6M
    {
5387
15.6M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<signed char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>&)
Line
Count
Source
5386
624k
    {
5387
624k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>&)
Line
Count
Source
5386
603k
    {
5387
603k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>&)
Line
Count
Source
5386
801k
    {
5387
801k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>&)
Line
Count
Source
5386
688k
    {
5387
688k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<signed char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>&)
Line
Count
Source
5386
157k
    {
5387
157k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<float>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>&)
Line
Count
Source
5386
1.32M
    {
5387
1.32M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<long double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>&)
Line
Count
Source
5386
1.44M
    {
5387
1.44M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<float>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>&)
Line
Count
Source
5386
165k
    {
5387
165k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<long double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>&)
Line
Count
Source
5386
166k
    {
5387
166k
    }
5388
5389
    /**
5390
     * \return `basic_scan_arg` at index `id`. Empty `basic_scan_arg` if
5391
     * there's no argument at index `id`.
5392
     */
5393
    SCN_NODISCARD constexpr basic_scan_arg<Context> get(std::size_t id) const
5394
57.1M
    {
5395
57.1M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
57.1M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
214
            return {};
5404
214
        }
5405
5406
57.1M
        const auto t = type(id);
5407
57.1M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
2.73k
            return {};
5409
2.73k
        }
5410
5411
57.1M
        basic_scan_arg<Context> arg;
5412
57.1M
        arg.m_type = t;
5413
57.1M
        if (is_only_builtin()) {
5414
57.1M
            arg.m_value.ref_value = m_builtin_values[id];
5415
57.1M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
57.1M
        return arg;
5420
57.1M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::get(unsigned long) const
Line
Count
Source
5394
8.83M
    {
5395
8.83M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
8.83M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
104
            return {};
5404
104
        }
5405
5406
8.83M
        const auto t = type(id);
5407
8.83M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
1.47k
            return {};
5409
1.47k
        }
5410
5411
8.83M
        basic_scan_arg<Context> arg;
5412
8.83M
        arg.m_type = t;
5413
8.83M
        if (is_only_builtin()) {
5414
8.83M
            arg.m_value.ref_value = m_builtin_values[id];
5415
8.83M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
8.83M
        return arg;
5420
8.83M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::get(unsigned long) const
Line
Count
Source
5394
48.3M
    {
5395
48.3M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
48.3M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
110
            return {};
5404
110
        }
5405
5406
48.3M
        const auto t = type(id);
5407
48.3M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
1.26k
            return {};
5409
1.26k
        }
5410
5411
48.3M
        basic_scan_arg<Context> arg;
5412
48.3M
        arg.m_type = t;
5413
48.3M
        if (is_only_builtin()) {
5414
48.3M
            arg.m_value.ref_value = m_builtin_values[id];
5415
48.3M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
48.3M
        return arg;
5420
48.3M
    }
5421
5422
    /**
5423
     * \return Number of arguments in `*this`.
5424
     */
5425
    SCN_NODISCARD constexpr std::size_t size() const
5426
57.3M
    {
5427
57.3M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
57.3M
        return static_cast<std::size_t>(m_desc &
5432
57.3M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
57.3M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::size() const
Line
Count
Source
5426
8.84M
    {
5427
8.84M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
8.84M
        return static_cast<std::size_t>(m_desc &
5432
8.84M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
8.84M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::size() const
Line
Count
Source
5426
48.4M
    {
5427
48.4M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
48.4M
        return static_cast<std::size_t>(m_desc &
5432
48.4M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
48.4M
    }
5434
5435
private:
5436
    constexpr explicit basic_scan_args(size_t desc, void** data)
5437
        : m_desc(desc), m_builtin_values(data)
5438
57.3M
    {
5439
57.3M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args(unsigned long, void**)
Line
Count
Source
5438
8.84M
    {
5439
8.84M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args(unsigned long, void**)
Line
Count
Source
5438
48.4M
    {
5439
48.4M
    }
5440
    constexpr explicit basic_scan_args(size_t desc, detail::arg_value* data)
5441
        : m_desc(desc), m_values(data)
5442
    {
5443
    }
5444
    constexpr explicit basic_scan_args(size_t desc,
5445
                                       basic_scan_arg<Context>* data)
5446
        : m_desc(desc), m_args(data)
5447
    {
5448
    }
5449
5450
    SCN_NODISCARD constexpr bool is_packed() const
5451
114M
    {
5452
114M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
114M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::is_packed() const
Line
Count
Source
5451
17.6M
    {
5452
17.6M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
17.6M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::is_packed() const
Line
Count
Source
5451
96.7M
    {
5452
96.7M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
96.7M
    }
5454
    SCN_NODISCARD constexpr bool is_only_builtin() const
5455
57.1M
    {
5456
57.1M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
57.1M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::is_only_builtin() const
Line
Count
Source
5455
8.83M
    {
5456
8.83M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
8.83M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::is_only_builtin() const
Line
Count
Source
5455
48.3M
    {
5456
48.3M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
48.3M
    }
5458
5459
    SCN_NODISCARD constexpr detail::arg_type type(std::size_t index) const
5460
57.1M
    {
5461
        // First (0th) index is size, types start after that
5462
57.1M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
57.1M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
57.1M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
57.1M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::type(unsigned long) const
Line
Count
Source
5460
8.83M
    {
5461
        // First (0th) index is size, types start after that
5462
8.83M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
8.83M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
8.83M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
8.83M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::type(unsigned long) const
Line
Count
Source
5460
48.3M
    {
5461
        // First (0th) index is size, types start after that
5462
48.3M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
48.3M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
48.3M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
48.3M
    }
5466
5467
    SCN_NODISCARD constexpr std::size_t max_size() const
5468
0
    {
5469
0
        return SCN_LIKELY(is_packed()) ? detail::max_packed_args
5470
0
                                       : (m_desc & ~detail::is_unpacked_bit &
5471
0
                                          ~detail::has_custom_types_bit);
5472
0
    }
Unexecuted instantiation: scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::max_size() const
Unexecuted instantiation: scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::max_size() const
5473
5474
    size_t m_desc{0};
5475
    union {
5476
        void** m_builtin_values;
5477
        detail::arg_value* m_values;
5478
        basic_scan_arg<Context>* m_args{nullptr};
5479
    };
5480
};
5481
5482
/////////////////////////////////////////////////////////////////
5483
// scan_parse_context
5484
/////////////////////////////////////////////////////////////////
5485
5486
/**
5487
 * Format string parsing context, wrapping the format string being parsed,
5488
 * and a counter for argument indexing.
5489
 *
5490
 * \ingroup ctx
5491
 */
5492
template <typename CharT>
5493
class basic_scan_parse_context {
5494
public:
5495
    using char_type = CharT;
5496
    using iterator = typename std::basic_string_view<CharT>::const_pointer;
5497
5498
    /**
5499
     * Construct a `basic_scan_parse_context` over a format string `format`.
5500
     */
5501
    explicit constexpr basic_scan_parse_context(
5502
        std::basic_string_view<CharT> format,
5503
        int next_arg_id = 0)
5504
        : m_format{format}, m_next_arg_id{next_arg_id}
5505
31.9M
    {
5506
31.9M
    }
scn::v3::basic_scan_parse_context<char>::basic_scan_parse_context(std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
5505
7.10M
    {
5506
7.10M
    }
scn::v3::basic_scan_parse_context<wchar_t>::basic_scan_parse_context(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
5505
24.8M
    {
5506
24.8M
    }
5507
5508
    /// Returns an iterator pointing to the beginning of the format string
5509
    constexpr auto begin() const noexcept
5510
63.1M
    {
5511
63.1M
        return m_format.data();
5512
63.1M
    }
scn::v3::basic_scan_parse_context<char>::begin() const
Line
Count
Source
5510
14.0M
    {
5511
14.0M
        return m_format.data();
5512
14.0M
    }
scn::v3::basic_scan_parse_context<wchar_t>::begin() const
Line
Count
Source
5510
49.1M
    {
5511
49.1M
        return m_format.data();
5512
49.1M
    }
5513
    /// Returns an iterator pointing to the end of the format string
5514
    constexpr auto end() const noexcept
5515
    {
5516
        return m_format.data() + m_format.size();
5517
    }
5518
5519
    /// Advance the beginning of the format string to `it`
5520
    constexpr void advance_to(iterator it)
5521
31.3M
    {
5522
31.3M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
31.3M
    }
scn::v3::basic_scan_parse_context<char>::advance_to(char const*)
Line
Count
Source
5521
6.93M
    {
5522
6.93M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
6.93M
    }
scn::v3::basic_scan_parse_context<wchar_t>::advance_to(wchar_t const*)
Line
Count
Source
5521
24.4M
    {
5522
24.4M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
24.4M
    }
5524
5525
    constexpr size_t next_arg_id()
5526
31.8M
    {
5527
31.8M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
42
            on_error(
5529
42
                "Cannot switch from manual to automatic argument indexing");
5530
42
            return 0;
5531
42
        }
5532
5533
31.8M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
31.8M
        do_check_arg_id(id);
5535
31.8M
        return id;
5536
31.8M
    }
scn::v3::basic_scan_parse_context<char>::next_arg_id()
Line
Count
Source
5526
7.09M
    {
5527
7.09M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
42
            on_error(
5529
42
                "Cannot switch from manual to automatic argument indexing");
5530
42
            return 0;
5531
42
        }
5532
5533
7.09M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
7.09M
        do_check_arg_id(id);
5535
7.09M
        return id;
5536
7.09M
    }
scn::v3::basic_scan_parse_context<wchar_t>::next_arg_id()
Line
Count
Source
5526
24.7M
    {
5527
24.7M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
0
            on_error(
5529
0
                "Cannot switch from manual to automatic argument indexing");
5530
0
            return 0;
5531
0
        }
5532
5533
24.7M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
24.7M
        do_check_arg_id(id);
5535
24.7M
        return id;
5536
24.7M
    }
5537
5538
    constexpr void check_arg_id(std::size_t id)
5539
3.36k
    {
5540
3.36k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
268
            on_error(
5542
268
                "Cannot switch from manual to automatic argument indexing");
5543
268
            return;
5544
268
        }
5545
3.09k
        m_next_arg_id = -1;
5546
3.09k
        do_check_arg_id(id);
5547
3.09k
    }
scn::v3::basic_scan_parse_context<char>::check_arg_id(unsigned long)
Line
Count
Source
5539
3.07k
    {
5540
3.07k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
70
            on_error(
5542
70
                "Cannot switch from manual to automatic argument indexing");
5543
70
            return;
5544
70
        }
5545
3.00k
        m_next_arg_id = -1;
5546
3.00k
        do_check_arg_id(id);
5547
3.00k
    }
scn::v3::basic_scan_parse_context<wchar_t>::check_arg_id(unsigned long)
Line
Count
Source
5539
288
    {
5540
288
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
198
            on_error(
5542
198
                "Cannot switch from manual to automatic argument indexing");
5543
198
            return;
5544
198
        }
5545
90
        m_next_arg_id = -1;
5546
90
        do_check_arg_id(id);
5547
90
    }
5548
5549
    constexpr scan_error on_error(const char* msg) const
5550
310
    {
5551
310
        return detail::handle_error(
5552
310
            scan_error{scan_error::invalid_format_string, msg});
5553
310
    }
scn::v3::basic_scan_parse_context<char>::on_error(char const*) const
Line
Count
Source
5550
112
    {
5551
112
        return detail::handle_error(
5552
112
            scan_error{scan_error::invalid_format_string, msg});
5553
112
    }
scn::v3::basic_scan_parse_context<wchar_t>::on_error(char const*) const
Line
Count
Source
5550
198
    {
5551
198
        return detail::handle_error(
5552
198
            scan_error{scan_error::invalid_format_string, msg});
5553
198
    }
5554
5555
protected:
5556
    constexpr void do_check_arg_id(size_t id);
5557
5558
    std::basic_string_view<CharT> m_format;
5559
    int m_next_arg_id{0};
5560
};
5561
5562
/////////////////////////////////////////////////////////////////
5563
// Result types
5564
/////////////////////////////////////////////////////////////////
5565
5566
namespace detail {
5567
template <typename... Args>
5568
struct scan_result_value_storage {
5569
public:
5570
    using tuple_type = std::tuple<Args...>;
5571
5572
    constexpr scan_result_value_storage() = default;
5573
5574
    constexpr scan_result_value_storage(tuple_type&& values)
5575
        : m_values(SCN_MOVE(values))
5576
67.5M
    {
5577
67.5M
    }
scn::v3::detail::scan_result_value_storage<char>::scan_result_value_storage(std::__1::tuple<char>&&)
Line
Count
Source
5576
122
    {
5577
122
    }
scn::v3::detail::scan_result_value_storage<int>::scan_result_value_storage(std::__1::tuple<int>&&)
Line
Count
Source
5576
767k
    {
5577
767k
    }
scn::v3::detail::scan_result_value_storage<unsigned int>::scan_result_value_storage(std::__1::tuple<unsigned int>&&)
Line
Count
Source
5576
652k
    {
5577
652k
    }
scn::v3::detail::scan_result_value_storage<double>::scan_result_value_storage(std::__1::tuple<double>&&)
Line
Count
Source
5576
1.53M
    {
5577
1.53M
    }
Unexecuted instantiation: scn::v3::detail::scan_result_value_storage<bool>::scan_result_value_storage(std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::detail::scan_result_value_storage<void*>::scan_result_value_storage(std::__1::tuple<void*>&&)
scn::v3::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5576
304k
    {
5577
304k
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5576
39.0M
    {
5577
39.0M
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
5576
151k
    {
5577
151k
    }
scn::v3::detail::scan_result_value_storage<wchar_t>::scan_result_value_storage(std::__1::tuple<wchar_t>&&)
Line
Count
Source
5576
62
    {
5577
62
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
5576
19.5M
    {
5577
19.5M
    }
scn::v3::detail::scan_result_value_storage<signed char>::scan_result_value_storage(std::__1::tuple<signed char>&&)
Line
Count
Source
5576
596k
    {
5577
596k
    }
scn::v3::detail::scan_result_value_storage<unsigned char>::scan_result_value_storage(std::__1::tuple<unsigned char>&&)
Line
Count
Source
5576
569k
    {
5577
569k
    }
scn::v3::detail::scan_result_value_storage<long long>::scan_result_value_storage(std::__1::tuple<long long>&&)
Line
Count
Source
5576
783k
    {
5577
783k
    }
scn::v3::detail::scan_result_value_storage<unsigned long long>::scan_result_value_storage(std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5576
660k
    {
5577
660k
    }
scn::v3::detail::scan_result_value_storage<float>::scan_result_value_storage(std::__1::tuple<float>&&)
Line
Count
Source
5576
1.41M
    {
5577
1.41M
    }
scn::v3::detail::scan_result_value_storage<long double>::scan_result_value_storage(std::__1::tuple<long double>&&)
Line
Count
Source
5576
1.55M
    {
5577
1.55M
    }
5578
5579
    /// Access the scanned values
5580
    tuple_type& values() &
5581
    {
5582
        return m_values;
5583
    }
5584
    /// Access the scanned values
5585
    const tuple_type& values() const&
5586
    {
5587
        return m_values;
5588
    }
5589
    /// Access the scanned values
5590
    tuple_type&& values() &&
5591
    {
5592
        return SCN_MOVE(m_values);
5593
    }
5594
    /// Access the scanned values
5595
    const tuple_type&& values() const&&
5596
    {
5597
        return SCN_MOVE(m_values);
5598
    }
5599
5600
    /// Access the single scanned value
5601
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5602
    decltype(auto) value() &
5603
    {
5604
        return std::get<0>(m_values);
5605
    }
5606
    /// Access the single scanned value
5607
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5608
    decltype(auto) value() const&
5609
    {
5610
        return std::get<0>(m_values);
5611
    }
5612
    /// Access the single scanned value
5613
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5614
    decltype(auto) value() &&
5615
    {
5616
        return SCN_MOVE(std::get<0>(m_values));
5617
    }
5618
    /// Access the single scanned value
5619
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5620
    decltype(auto) value() const&&
5621
    {
5622
        return SCN_MOVE(std::get<0>(m_values));
5623
    }
5624
5625
private:
5626
    SCN_NO_UNIQUE_ADDRESS tuple_type m_values{};
5627
};
5628
5629
struct scan_result_convert_tag {};
5630
5631
template <typename Range>
5632
struct scan_result_range_storage {
5633
public:
5634
    using range_type = Range;
5635
    using iterator = ranges::iterator_t<Range>;
5636
    using sentinel = ranges::sentinel_t<Range>;
5637
5638
    constexpr scan_result_range_storage() = default;
5639
5640
    constexpr scan_result_range_storage(range_type&& r) : m_range(SCN_MOVE(r))
5641
67.5M
    {
5642
67.5M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
5641
4.53M
    {
5642
4.53M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
5641
39.0M
    {
5642
39.0M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
5641
4.37M
    {
5642
4.37M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
5641
19.5M
    {
5642
19.5M
    }
5643
5644
    template <typename R>
5645
    explicit constexpr scan_result_range_storage(scan_result_convert_tag, R&& r)
5646
        : m_range(SCN_MOVE(r))
5647
    {
5648
    }
5649
5650
    /// Access the ununsed source range
5651
    range_type range() const
5652
    {
5653
        return m_range;
5654
    }
5655
5656
    /// The beginning of the unused source range
5657
    auto begin() const
5658
67.5M
    {
5659
67.5M
        return ranges::begin(m_range);
5660
67.5M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::begin() const
Line
Count
Source
5658
4.52M
    {
5659
4.52M
        return ranges::begin(m_range);
5660
4.52M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::begin() const
Line
Count
Source
5658
4.37M
    {
5659
4.37M
        return ranges::begin(m_range);
5660
4.37M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::begin() const
Line
Count
Source
5658
39.0M
    {
5659
39.0M
        return ranges::begin(m_range);
5660
39.0M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::begin() const
Line
Count
Source
5658
19.5M
    {
5659
19.5M
        return ranges::begin(m_range);
5660
19.5M
    }
5661
    /// The end of the unused source range
5662
    auto end() const
5663
0
    {
5664
0
        return ranges::end(m_range);
5665
0
    }
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::end() const
5666
5667
protected:
5668
    template <typename Other>
5669
    void assign_range(Other&& r)
5670
    {
5671
        m_range = r.m_range;
5672
    }
5673
5674
private:
5675
    SCN_NO_UNIQUE_ADDRESS range_type m_range{};
5676
};
5677
5678
struct scan_result_file_storage {
5679
public:
5680
    using range_type = std::FILE*;
5681
5682
    constexpr scan_result_file_storage() = default;
5683
5684
0
    constexpr scan_result_file_storage(std::FILE* f) : m_file(f) {}
5685
5686
    /// File used for scanning
5687
    std::FILE* file() const
5688
0
    {
5689
0
        return m_file;
5690
0
    }
5691
5692
protected:
5693
    void assign_range(const scan_result_file_storage& f)
5694
0
    {
5695
0
        m_file = f.m_file;
5696
0
    }
5697
5698
private:
5699
    std::FILE* m_file{nullptr};
5700
};
5701
5702
struct scan_result_dangling {
5703
    using range_type = ranges::dangling;
5704
5705
    constexpr scan_result_dangling() = default;
5706
5707
    template <typename... Args>
5708
    explicit constexpr scan_result_dangling(Args&&...)
5709
    {
5710
    }
5711
5712
    range_type range() const
5713
0
    {
5714
0
        return {};
5715
0
    }
5716
5717
    ranges::dangling begin() const
5718
0
    {
5719
0
        return {};
5720
0
    }
5721
    ranges::dangling end() const
5722
0
    {
5723
0
        return {};
5724
0
    }
5725
5726
protected:
5727
    template <typename... Args>
5728
    void assign_range(Args&&...)
5729
    {
5730
    }
5731
};
5732
5733
template <typename Range>
5734
constexpr auto get_scan_result_base()
5735
0
{
5736
0
    if constexpr (std::is_same_v<remove_cvref_t<Range>, ranges::dangling>) {
5737
0
        return type_identity<scan_result_dangling>{};
5738
0
    }
5739
0
    else if constexpr (std::is_same_v<remove_cvref_t<Range>, std::FILE*>) {
5740
0
        return type_identity<scan_result_file_storage>{};
5741
0
    }
5742
0
    else {
5743
0
        return type_identity<scan_result_range_storage<Range>>{};
5744
0
    }
5745
0
}
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >()
5746
5747
#if !SCN_DOXYGEN
5748
template <typename Range>
5749
using scan_result_base = typename decltype(get_scan_result_base<Range>())::type;
5750
#else
5751
template <typename Range>
5752
using scan_result_base = scan_result_range_storage<Range>;
5753
#endif
5754
}  // namespace detail
5755
5756
/**
5757
 * \defgroup result Result types
5758
 *
5759
 * \brief Result and error types
5760
 *
5761
 * Instead of using exceptions, `scn::scan` and others return an object of
5762
 * type `scn::scan_result`, wrapped inside a `scn::scan_expected`.
5763
 */
5764
5765
/**
5766
 * Type returned by `scan`, contains the unused input as a subrange, and the
5767
 * scanned values in a tuple.
5768
 */
5769
template <typename Range, typename... Args>
5770
class scan_result : public detail::scan_result_base<Range>,
5771
                    public detail::scan_result_value_storage<Args...> {
5772
    using range_base = detail::scan_result_base<Range>;
5773
    using value_base = detail::scan_result_value_storage<Args...>;
5774
5775
public:
5776
    using range_type = typename range_base::range_type;
5777
    using tuple_type = typename value_base::tuple_type;
5778
5779
    constexpr scan_result() = default;
5780
5781
    constexpr scan_result(const scan_result&) = default;
5782
39.3M
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
151k
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
796
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
68
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
19.5M
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
152k
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
19.5M
    constexpr scan_result(scan_result&&) = default;
5783
    constexpr scan_result& operator=(const scan_result&) = default;
5784
    constexpr scan_result& operator=(scan_result&&) = default;
5785
5786
78.6M
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
303k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
1.59k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
136
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
39.0M
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
305k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
39.0M
    ~scan_result() = default;
5787
5788
    scan_result(range_type r, tuple_type&& values)
5789
        : range_base(SCN_MOVE(r)), value_base(SCN_MOVE(values))
5790
67.5M
    {
5791
67.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<char>&&)
Line
Count
Source
5790
122
    {
5791
122
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<int>&&)
Line
Count
Source
5790
382k
    {
5791
382k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
324k
    {
5791
324k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<double>&&)
Line
Count
Source
5790
756k
    {
5791
756k
    }
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<void*>&&)
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
151k
    {
5791
151k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
796
    {
5791
796
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
5790
151k
    {
5791
151k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<wchar_t>&&)
Line
Count
Source
5790
62
    {
5791
62
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<int>&&)
Line
Count
Source
5790
711
    {
5791
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
564
    {
5791
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<double>&&)
Line
Count
Source
5790
14.2k
    {
5791
14.2k
    }
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<void*>&&)
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
68
    {
5791
68
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
19.5M
    {
5791
19.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
5790
19.5M
    {
5791
19.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
296k
    {
5791
296k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
283k
    {
5791
283k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<long long>&&)
Line
Count
Source
5790
390k
    {
5791
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
328k
    {
5791
328k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
298k
    {
5791
298k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
285k
    {
5791
285k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<int>&&)
Line
Count
Source
5790
383k
    {
5791
383k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
326k
    {
5791
326k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<long long>&&)
Line
Count
Source
5790
390k
    {
5791
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
330k
    {
5791
330k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
595
    {
5791
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
500
    {
5791
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<long long>&&)
Line
Count
Source
5790
864
    {
5791
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
694
    {
5791
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
595
    {
5791
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
500
    {
5791
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<int>&&)
Line
Count
Source
5790
711
    {
5791
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
564
    {
5791
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<long long>&&)
Line
Count
Source
5790
864
    {
5791
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
694
    {
5791
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
152k
    {
5791
152k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
19.5M
    {
5791
19.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<float>&&)
Line
Count
Source
5790
695k
    {
5791
695k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<long double>&&)
Line
Count
Source
5790
767k
    {
5791
767k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<float>&&)
Line
Count
Source
5790
690k
    {
5791
690k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<double>&&)
Line
Count
Source
5790
751k
    {
5791
751k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<long double>&&)
Line
Count
Source
5790
761k
    {
5791
761k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<float>&&)
Line
Count
Source
5790
14.1k
    {
5791
14.1k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<long double>&&)
Line
Count
Source
5790
14.3k
    {
5791
14.3k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<float>&&)
Line
Count
Source
5790
14.0k
    {
5791
14.0k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<double>&&)
Line
Count
Source
5790
14.1k
    {
5791
14.1k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<long double>&&)
Line
Count
Source
5790
14.3k
    {
5791
14.3k
    }
5792
5793
    template <typename OtherR,
5794
              std::enable_if_t<std::is_constructible_v<range_type, OtherR>>* =
5795
                  nullptr>
5796
    scan_result(OtherR&& r, tuple_type&& values)
5797
        : range_base(detail::scan_result_convert_tag{}, SCN_FWD(r)),
5798
          value_base(SCN_MOVE(values))
5799
    {
5800
    }
5801
5802
    template <typename OtherR,
5803
              std::enable_if_t<
5804
                  std::is_constructible_v<range_type, OtherR> &&
5805
                  std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
5806
    SCN_IMPLICIT scan_result(const scan_result<OtherR, Args...>& o)
5807
        : range_base(detail::scan_result_convert_tag{}, o.range()),
5808
          value_base(o.values())
5809
    {
5810
    }
5811
    template <typename OtherR,
5812
              std::enable_if_t<
5813
                  std::is_constructible_v<range_type, OtherR> &&
5814
                  !std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
5815
    explicit scan_result(const scan_result<OtherR, Args...>& o)
5816
        : range_base(detail::scan_result_convert_tag{}, o.range()),
5817
          value_base(o.values())
5818
    {
5819
    }
5820
5821
    template <typename OtherR,
5822
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
5823
                               std::is_convertible_v<OtherR&&, range_type>>* =
5824
                  nullptr>
5825
    SCN_IMPLICIT scan_result(scan_result<OtherR, Args...>&& o)
5826
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
5827
          value_base(SCN_MOVE(o.values()))
5828
    {
5829
    }
5830
    template <typename OtherR,
5831
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
5832
                               !std::is_convertible_v<OtherR&&, range_type>>* =
5833
                  nullptr>
5834
    explicit scan_result(scan_result<OtherR, Args...>&& o)
5835
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
5836
          value_base(SCN_MOVE(o.values()))
5837
    {
5838
    }
5839
5840
    template <typename OtherR,
5841
              typename =
5842
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
5843
    scan_result& operator=(const scan_result<OtherR, Args...>& o)
5844
    {
5845
        this->assign_range(o);
5846
        this->values() = o.values();
5847
        return *this;
5848
    }
5849
5850
    template <typename OtherR,
5851
              typename =
5852
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
5853
    scan_result& operator=(scan_result<OtherR, Args...>&& o)
5854
    {
5855
        this->assign_range(o);
5856
        this->values() = SCN_MOVE(o.values());
5857
        return *this;
5858
    }
5859
};
5860
5861
template <typename R, typename... Args>
5862
scan_result(R, std::tuple<Args...>) -> scan_result<R, Args...>;
5863
template <typename R, typename Ctx, typename... Args>
5864
scan_result(R, detail::scan_arg_store<Ctx, Args...>&)
5865
    -> scan_result<R, Args...>;
5866
5867
namespace detail {
5868
template <typename SourceRange>
5869
auto make_vscan_result_range_end(SourceRange& source)
5870
67.5M
{
5871
67.5M
    return ranges::end(source);
5872
67.5M
}
auto scn::v3::detail::make_vscan_result_range_end<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5870
2.51k
{
5871
2.51k
    return ranges::end(source);
5872
2.51k
}
auto scn::v3::detail::make_vscan_result_range_end<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5870
266
{
5871
266
    return ranges::end(source);
5872
266
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&)
Line
Count
Source
5870
4.52M
{
5871
4.52M
    return ranges::end(source);
5872
4.52M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&)
Line
Count
Source
5870
4.37M
{
5871
4.37M
    return ranges::end(source);
5872
4.37M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&)
Line
Count
Source
5870
39.0M
{
5871
39.0M
    return ranges::end(source);
5872
39.0M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&)
Line
Count
Source
5870
19.5M
{
5871
19.5M
    return ranges::end(source);
5872
19.5M
}
5873
template <typename CharT, size_t N>
5874
auto make_vscan_result_range_end(CharT (&source)[N])
5875
    -> ranges::sentinel_t<CharT (&)[N]>
5876
{
5877
    return source + N - 1;
5878
}
5879
5880
template <typename SourceRange>
5881
auto make_vscan_result_range(SourceRange&& source, std::ptrdiff_t n)
5882
    -> borrowed_tail_subrange_t<SourceRange>
5883
67.5M
{
5884
67.5M
    if constexpr (ranges::random_access_iterator<
5885
67.5M
                      ranges::iterator_t<SourceRange>>) {
5886
67.5M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
67.5M
    }
5888
67.5M
    else {
5889
67.5M
        auto it = ranges::begin(source);
5890
67.5M
        while (n > 0) {
5891
67.5M
            --n;
5892
67.5M
            ++it;
5893
67.5M
        }
5894
67.5M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
67.5M
    }
5896
67.5M
}
_ZN3scn2v36detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
5883
2.51k
{
5884
2.51k
    if constexpr (ranges::random_access_iterator<
5885
2.51k
                      ranges::iterator_t<SourceRange>>) {
5886
2.51k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
2.51k
    }
5888
2.51k
    else {
5889
2.51k
        auto it = ranges::begin(source);
5890
2.51k
        while (n > 0) {
5891
2.51k
            --n;
5892
2.51k
            ++it;
5893
2.51k
        }
5894
2.51k
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
2.51k
    }
5896
2.51k
}
_ZN3scn2v36detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
5883
266
{
5884
266
    if constexpr (ranges::random_access_iterator<
5885
266
                      ranges::iterator_t<SourceRange>>) {
5886
266
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
266
    }
5888
266
    else {
5889
266
        auto it = ranges::begin(source);
5890
266
        while (n > 0) {
5891
266
            --n;
5892
266
            ++it;
5893
266
        }
5894
266
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
266
    }
5896
266
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
5883
4.52M
{
5884
4.52M
    if constexpr (ranges::random_access_iterator<
5885
4.52M
                      ranges::iterator_t<SourceRange>>) {
5886
4.52M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
4.52M
    }
5888
4.52M
    else {
5889
4.52M
        auto it = ranges::begin(source);
5890
4.52M
        while (n > 0) {
5891
4.52M
            --n;
5892
4.52M
            ++it;
5893
4.52M
        }
5894
4.52M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
4.52M
    }
5896
4.52M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
5883
4.37M
{
5884
4.37M
    if constexpr (ranges::random_access_iterator<
5885
4.37M
                      ranges::iterator_t<SourceRange>>) {
5886
4.37M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
4.37M
    }
5888
4.37M
    else {
5889
4.37M
        auto it = ranges::begin(source);
5890
4.37M
        while (n > 0) {
5891
4.37M
            --n;
5892
4.37M
            ++it;
5893
4.37M
        }
5894
4.37M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
4.37M
    }
5896
4.37M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
5883
39.0M
{
5884
39.0M
    if constexpr (ranges::random_access_iterator<
5885
39.0M
                      ranges::iterator_t<SourceRange>>) {
5886
39.0M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
39.0M
    }
5888
39.0M
    else {
5889
39.0M
        auto it = ranges::begin(source);
5890
39.0M
        while (n > 0) {
5891
39.0M
            --n;
5892
39.0M
            ++it;
5893
39.0M
        }
5894
39.0M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
39.0M
    }
5896
39.0M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
5883
19.5M
{
5884
19.5M
    if constexpr (ranges::random_access_iterator<
5885
19.5M
                      ranges::iterator_t<SourceRange>>) {
5886
19.5M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
19.5M
    }
5888
19.5M
    else {
5889
19.5M
        auto it = ranges::begin(source);
5890
19.5M
        while (n > 0) {
5891
19.5M
            --n;
5892
19.5M
            ++it;
5893
19.5M
        }
5894
19.5M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
19.5M
    }
5896
19.5M
}
5897
inline auto make_vscan_result_range(std::FILE* source, std::ptrdiff_t)
5898
0
{
5899
0
    return source;
5900
0
}
5901
}  // namespace detail
5902
5903
/////////////////////////////////////////////////////////////////
5904
// Format string parsing
5905
/////////////////////////////////////////////////////////////////
5906
5907
namespace detail {
5908
/// Parse context with extra data used only for compile-time checks
5909
template <typename CharT>
5910
class compile_parse_context : public basic_scan_parse_context<CharT> {
5911
    using base = basic_scan_parse_context<CharT>;
5912
5913
public:
5914
    template <typename Source>
5915
    explicit constexpr compile_parse_context(
5916
        std::basic_string_view<CharT> format_str,
5917
        int num_args,
5918
        const arg_type* types,
5919
        type_identity<Source> source_tag,
5920
        int next_arg_id = 0)
5921
        : base(format_str, next_arg_id),
5922
          m_num_args(num_args),
5923
          m_types(types),
5924
          m_is_contiguous(ranges::range<Source> &&
5925
                          ranges::contiguous_range<Source>),
5926
          m_is_borrowed(
5927
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
5928
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
5929
    {
5930
    }
5931
5932
    SCN_NODISCARD constexpr int get_num_args() const
5933
0
    {
5934
0
        return m_num_args;
5935
0
    }
Unexecuted instantiation: scn::v3::detail::compile_parse_context<char>::get_num_args() const
Unexecuted instantiation: scn::v3::detail::compile_parse_context<wchar_t>::get_num_args() const
5936
    SCN_NODISCARD constexpr arg_type get_arg_type(std::size_t id) const
5937
    {
5938
        return m_types[id];
5939
    }
5940
5941
    SCN_GCC_PUSH
5942
    SCN_GCC_IGNORE("-Wsign-conversion")
5943
5944
    constexpr std::size_t next_arg_id()
5945
    {
5946
        auto id = base::next_arg_id();
5947
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
5948
            this->on_error("Argument not found");
5949
        }
5950
        return id;
5951
    }
5952
5953
    constexpr void check_arg_id(std::size_t id)
5954
    {
5955
        base::check_arg_id(id);
5956
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
5957
            this->on_error("Argument not found");
5958
        }
5959
    }
5960
    using base::check_arg_id;
5961
5962
    constexpr void check_arg_can_be_read(std::size_t id)
5963
    {
5964
        auto type = get_arg_type(id);
5965
5966
        if ((type == arg_type::narrow_string_view_type ||
5967
             type == arg_type::wide_string_view_type) &&
5968
            !m_is_contiguous) {
5969
            // clang-format off
5970
            this->on_error("Cannot read a string_view from a non-contiguous source");
5971
            // clang-format on
5972
            return;
5973
        }
5974
        if ((type == arg_type::narrow_string_view_type ||
5975
             type == arg_type::wide_string_view_type) &&
5976
            !m_is_borrowed) {
5977
            // clang-format off
5978
            this->on_error("Cannot read a string_view from a non-borrowed source");
5979
            // clang-format on
5980
            return;
5981
        }
5982
5983
        if ((type == arg_type::narrow_regex_matches_type ||
5984
             type == arg_type::wide_regex_matches_type) &&
5985
            !m_is_contiguous) {
5986
            // clang-format off
5987
            this->on_error("Cannot read a regex_matches from a non-contiguous source");
5988
            // clang-format on
5989
            return;
5990
        }
5991
    }
5992
5993
private:
5994
    int m_num_args;
5995
    const arg_type* m_types;
5996
    bool m_is_contiguous, m_is_borrowed;
5997
5998
    SCN_GCC_POP  // -Wsign-conversion
5999
};
6000
6001
constexpr inline bool is_constant_evaluated(bool default_value = false) noexcept
6002
0
{
6003
0
#ifdef __cpp_lib_is_constant_evaluated
6004
0
    SCN_UNUSED(default_value);
6005
0
    return std::is_constant_evaluated();
6006
0
#else
6007
0
    return default_value;
6008
0
#endif
6009
0
}
6010
}  // namespace detail
6011
6012
template <typename CharT>
6013
constexpr void basic_scan_parse_context<CharT>::do_check_arg_id(size_t id)
6014
31.8M
{
6015
31.8M
    if (detail::is_constant_evaluated() &&
6016
31.8M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
31.8M
}
scn::v3::basic_scan_parse_context<char>::do_check_arg_id(unsigned long)
Line
Count
Source
6014
7.09M
{
6015
7.09M
    if (detail::is_constant_evaluated() &&
6016
7.09M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
7.09M
}
scn::v3::basic_scan_parse_context<wchar_t>::do_check_arg_id(unsigned long)
Line
Count
Source
6014
24.7M
{
6015
24.7M
    if (detail::is_constant_evaluated() &&
6016
24.7M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
24.7M
}
6026
6027
namespace detail {
6028
enum class align_type : unsigned char {
6029
    none = 0,
6030
    left = 1,   // '<'
6031
    right = 2,  // '>'
6032
    center = 3  // '^'
6033
};
6034
6035
enum class presentation_type {
6036
    none,
6037
    int_binary,            // 'b', 'B'
6038
    int_decimal,           // 'd'
6039
    int_generic,           // 'i'
6040
    int_unsigned_decimal,  // 'u'
6041
    int_octal,             // 'o'
6042
    int_hex,               // 'x', 'X'
6043
    int_arbitrary_base,    // 'rnn', 'Rnn' (R for radix)
6044
    float_hex,             // 'a', 'A'
6045
    float_scientific,      // 'e', 'E'
6046
    float_fixed,           // 'f', 'F'
6047
    float_general,         // 'g', 'G'
6048
    string,                // 's'
6049
    string_set,            // '[...]'
6050
    regex,                 // '/.../.'
6051
    regex_escaped,         // '/..\/../.'
6052
    character,             // 'c'
6053
    escaped_character,     // '?'
6054
    pointer,               // 'p'
6055
};
6056
6057
enum class regex_flags {
6058
    none = 0,
6059
    multiline = 1,   // /m
6060
    singleline = 2,  // /s
6061
    nocase = 4,      // /i
6062
    nocapture = 8,   // /n
6063
    // TODO?
6064
    // would probably need to go hand-in-hand with locale,
6065
    // where it could even be the default/only option -> no flag?
6066
    // why else would you even use locale with a regex?
6067
    // collate = 16,
6068
};
6069
6070
constexpr regex_flags operator&(regex_flags a, regex_flags b)
6071
42.2k
{
6072
42.2k
    return static_cast<regex_flags>(static_cast<unsigned>(a) &
6073
42.2k
                                    static_cast<unsigned>(b));
6074
42.2k
}
6075
constexpr regex_flags operator|(regex_flags a, regex_flags b)
6076
4.12k
{
6077
4.12k
    return static_cast<regex_flags>(static_cast<unsigned>(a) |
6078
4.12k
                                    static_cast<unsigned>(b));
6079
4.12k
}
6080
constexpr regex_flags operator^(regex_flags a, regex_flags b)
6081
0
{
6082
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) ^
6083
0
                                    static_cast<unsigned>(b));
6084
0
}
6085
6086
constexpr regex_flags& operator&=(regex_flags& a, regex_flags b)
6087
0
{
6088
0
    return a = a & b;
6089
0
}
6090
constexpr regex_flags& operator|=(regex_flags& a, regex_flags b)
6091
4.12k
{
6092
4.12k
    return a = a | b;
6093
4.12k
}
6094
constexpr regex_flags& operator^=(regex_flags& a, regex_flags b)
6095
0
{
6096
0
    return a = a ^ b;
6097
0
}
6098
6099
class fill_type {
6100
public:
6101
    constexpr void operator=(char c)
6102
0
    {
6103
0
        m_data[0] = c;
6104
0
        m_size = 1;
6105
0
    }
6106
6107
    template <typename CharT>
6108
    constexpr void operator=(std::basic_string_view<CharT> s)
6109
4.19k
    {
6110
4.19k
        SCN_EXPECT(!s.empty());
6111
4.19k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
4.19k
        if constexpr (sizeof(CharT) == 1) {
6113
8.98k
            for (size_t i = 0; i < s.size(); ++i) {
6114
5.01k
                SCN_GCC_PUSH
6115
5.01k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
5.01k
                m_data[i] = s[i];
6117
5.01k
                SCN_GCC_POP
6118
5.01k
            }
6119
3.97k
            m_size = static_cast<unsigned char>(s.size());
6120
3.97k
        }
6121
222
        else if constexpr (sizeof(CharT) == 2) {
6122
222
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
222
            m_data[1] =
6124
222
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
222
            if (s.size() == 1) {
6126
222
                return;
6127
222
            }
6128
222
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
222
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
222
        }
6131
222
        else {
6132
222
            const auto front = static_cast<unsigned>(s.front());
6133
222
            m_data[0] = static_cast<char>(front);
6134
222
            m_data[1] = static_cast<char>(front >> 8);
6135
222
            m_data[2] = static_cast<char>(front >> 16);
6136
222
            m_data[3] = static_cast<char>(front >> 24);
6137
222
        }
6138
4.19k
    }
void scn::v3::detail::fill_type::operator=<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6109
3.97k
    {
6110
3.97k
        SCN_EXPECT(!s.empty());
6111
3.97k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
3.97k
        if constexpr (sizeof(CharT) == 1) {
6113
8.98k
            for (size_t i = 0; i < s.size(); ++i) {
6114
5.01k
                SCN_GCC_PUSH
6115
5.01k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
5.01k
                m_data[i] = s[i];
6117
5.01k
                SCN_GCC_POP
6118
5.01k
            }
6119
3.97k
            m_size = static_cast<unsigned char>(s.size());
6120
3.97k
        }
6121
3.97k
        else if constexpr (sizeof(CharT) == 2) {
6122
3.97k
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
3.97k
            m_data[1] =
6124
3.97k
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
3.97k
            if (s.size() == 1) {
6126
3.97k
                return;
6127
3.97k
            }
6128
3.97k
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
3.97k
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
3.97k
        }
6131
3.97k
        else {
6132
3.97k
            const auto front = static_cast<unsigned>(s.front());
6133
3.97k
            m_data[0] = static_cast<char>(front);
6134
3.97k
            m_data[1] = static_cast<char>(front >> 8);
6135
3.97k
            m_data[2] = static_cast<char>(front >> 16);
6136
3.97k
            m_data[3] = static_cast<char>(front >> 24);
6137
3.97k
        }
6138
3.97k
    }
void scn::v3::detail::fill_type::operator=<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6109
222
    {
6110
222
        SCN_EXPECT(!s.empty());
6111
222
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
222
        if constexpr (sizeof(CharT) == 1) {
6113
222
            for (size_t i = 0; i < s.size(); ++i) {
6114
222
                SCN_GCC_PUSH
6115
222
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
222
                m_data[i] = s[i];
6117
222
                SCN_GCC_POP
6118
222
            }
6119
222
            m_size = static_cast<unsigned char>(s.size());
6120
222
        }
6121
222
        else if constexpr (sizeof(CharT) == 2) {
6122
222
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
222
            m_data[1] =
6124
222
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
222
            if (s.size() == 1) {
6126
222
                return;
6127
222
            }
6128
222
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
222
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
222
        }
6131
222
        else {
6132
222
            const auto front = static_cast<unsigned>(s.front());
6133
222
            m_data[0] = static_cast<char>(front);
6134
222
            m_data[1] = static_cast<char>(front >> 8);
6135
222
            m_data[2] = static_cast<char>(front >> 16);
6136
222
            m_data[3] = static_cast<char>(front >> 24);
6137
222
        }
6138
222
    }
6139
6140
    constexpr size_t size() const
6141
3.45k
    {
6142
3.45k
        return m_size;
6143
3.45k
    }
6144
6145
    template <typename CharT>
6146
    CharT get_code_unit() const
6147
3.03k
    {
6148
3.03k
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
3.03k
        CharT r{};
6150
3.03k
        std::memcpy(&r, m_data, m_size);
6151
3.03k
        return r;
6152
3.03k
    }
char scn::v3::detail::fill_type::get_code_unit<char>() const
Line
Count
Source
6147
2.68k
    {
6148
2.68k
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
2.68k
        CharT r{};
6150
2.68k
        std::memcpy(&r, m_data, m_size);
6151
2.68k
        return r;
6152
2.68k
    }
wchar_t scn::v3::detail::fill_type::get_code_unit<wchar_t>() const
Line
Count
Source
6147
348
    {
6148
348
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
348
        CharT r{};
6150
348
        std::memcpy(&r, m_data, m_size);
6151
348
        return r;
6152
348
    }
6153
6154
    template <typename CharT>
6155
    std::basic_string_view<CharT> get_code_units() const
6156
428
    {
6157
428
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6158
428
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::fill_type::get_code_units<char>() const
Line
Count
Source
6156
428
    {
6157
428
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6158
428
    }
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::fill_type::get_code_units<wchar_t>() const
6159
6160
private:
6161
    static constexpr size_t max_size = 4;
6162
    char m_data[max_size] = {' '};
6163
    unsigned char m_size{1};
6164
};
6165
6166
struct format_specs {
6167
    int width{0}, precision{0};
6168
    fill_type fill{};
6169
    presentation_type type{presentation_type::none};
6170
    std::array<uint8_t, 128 / 8> charset_literals{0};
6171
    bool charset_has_nonascii{false}, charset_is_inverted{false};
6172
    const void* charset_string_data{nullptr};
6173
    size_t charset_string_size{0};
6174
    regex_flags regexp_flags{regex_flags::none};
6175
    unsigned char arbitrary_base{0};
6176
    align_type align{align_type::none};
6177
    bool localized{false};
6178
6179
    constexpr format_specs() = default;
6180
6181
    SCN_NODISCARD constexpr int get_base() const
6182
3.92M
    {
6183
3.92M
        SCN_GCC_COMPAT_PUSH
6184
3.92M
        SCN_GCC_COMPAT_IGNORE("-Wswitch-enum")
6185
3.92M
        switch (type) {
6186
744k
            case presentation_type::none:
6187
744k
                return 10;
6188
991k
            case presentation_type::int_generic:
6189
991k
                return 0;
6190
0
            case presentation_type::int_arbitrary_base:
6191
0
                return arbitrary_base;
6192
6193
222k
            case presentation_type::int_binary:
6194
222k
                return 2;
6195
388k
            case presentation_type::int_octal:
6196
388k
                return 8;
6197
741k
            case presentation_type::int_decimal:
6198
741k
            case presentation_type::int_unsigned_decimal:
6199
741k
                return 10;
6200
836k
            case presentation_type::int_hex:
6201
836k
                return 16;
6202
6203
0
            default:
6204
0
                SCN_EXPECT(false);
6205
3.92M
                SCN_UNREACHABLE;
6206
3.92M
        }
6207
3.92M
        SCN_GCC_COMPAT_POP
6208
3.92M
    }
6209
6210
    template <typename CharT>
6211
    std::basic_string_view<CharT> charset_string() const
6212
13.2k
    {
6213
13.2k
        return {reinterpret_cast<const CharT*>(charset_string_data),
6214
13.2k
                charset_string_size};
6215
13.2k
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::format_specs::charset_string<char>() const
Line
Count
Source
6212
13.2k
    {
6213
13.2k
        return {reinterpret_cast<const CharT*>(charset_string_data),
6214
13.2k
                charset_string_size};
6215
13.2k
    }
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::format_specs::charset_string<wchar_t>() const
6216
};
6217
6218
struct specs_setter {
6219
public:
6220
31.8M
    explicit constexpr specs_setter(format_specs& specs) : m_specs(specs) {}
6221
6222
    constexpr void on_align(align_type align)
6223
8.15k
    {
6224
8.15k
        m_specs.align = align;
6225
8.15k
    }
6226
    template <typename CharT>
6227
    constexpr void on_fill(std::basic_string_view<CharT> fill)
6228
4.19k
    {
6229
4.19k
        m_specs.fill = fill;
6230
4.19k
    }
void scn::v3::detail::specs_setter::on_fill<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6228
3.97k
    {
6229
3.97k
        m_specs.fill = fill;
6230
3.97k
    }
void scn::v3::detail::specs_setter::on_fill<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6228
222
    {
6229
222
        m_specs.fill = fill;
6230
222
    }
6231
    constexpr void on_localized()
6232
1.78M
    {
6233
1.78M
        if constexpr (!SCN_DISABLE_LOCALE) {
6234
1.78M
            m_specs.localized = true;
6235
1.78M
        }
6236
0
        else {
6237
0
            on_error("'L' flag invalid when SCN_DISABLE_LOCALE is on");
6238
0
        }
6239
1.78M
    }
6240
6241
    constexpr void on_width(int width)
6242
36.0k
    {
6243
36.0k
        if (m_specs.precision != 0 && width > m_specs.precision) {
6244
            // clang-format off
6245
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6246
            // clang-format on
6247
0
        }
6248
6249
36.0k
        m_specs.width = width;
6250
36.0k
    }
6251
    constexpr void on_precision(int prec)
6252
7.09k
    {
6253
7.09k
        if (m_specs.width > prec) {
6254
            // clang-format off
6255
62
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6256
            // clang-format on
6257
62
        }
6258
6259
7.03k
        m_specs.precision = prec;
6260
7.03k
    }
6261
6262
    constexpr void on_type(presentation_type type)
6263
29.7M
    {
6264
29.7M
        m_specs.type = type;
6265
29.7M
    }
6266
6267
    constexpr void on_charset_single(char32_t cp)
6268
2.18M
    {
6269
2.18M
        const auto cp_value = static_cast<unsigned>(cp);
6270
2.18M
        if (SCN_LIKELY(cp_value <= 127)) {
6271
1.93M
            m_specs.charset_literals[cp_value / 8] |=
6272
1.93M
                static_cast<unsigned char>(1ul << (cp_value % 8));
6273
1.93M
        }
6274
247k
        else {
6275
247k
            m_specs.charset_has_nonascii = true;
6276
247k
        }
6277
2.18M
    }
6278
6279
    constexpr void on_charset_range(char32_t begin, char32_t end)
6280
45.3k
    {
6281
45.3k
        const auto begin_value = static_cast<unsigned>(begin);
6282
45.3k
        const auto end_value = static_cast<unsigned>(end);
6283
45.3k
        SCN_EXPECT(begin_value < end_value);
6284
6285
45.3k
        if (SCN_LIKELY(end_value <= 127)) {
6286
            // No need to bit-twiddle with a mask, because with the
6287
            // SCN_ASSUME, -O3 will optimize this to a single operation
6288
39.1k
            SCN_ASSUME(begin_value < end_value);
6289
1.35M
            for (auto v = begin_value; v != end_value; ++v) {
6290
1.31M
                m_specs.charset_literals[v / 8] |=
6291
1.31M
                    static_cast<unsigned char>(1ul << (v % 8));
6292
1.31M
            }
6293
39.1k
        }
6294
6.20k
        else {
6295
6.20k
            m_specs.charset_has_nonascii = true;
6296
6.20k
        }
6297
45.3k
    }
6298
6299
    constexpr void on_charset_inverted()
6300
2.46k
    {
6301
2.46k
        m_specs.charset_is_inverted = true;
6302
2.46k
    }
6303
6304
    template <typename CharT>
6305
    constexpr void on_character_set_string(std::basic_string_view<CharT> fmt)
6306
28.6k
    {
6307
28.6k
        m_specs.charset_string_data = fmt.data();
6308
28.6k
        m_specs.charset_string_size = fmt.size();
6309
28.6k
        on_type(presentation_type::string_set);
6310
28.6k
    }
void scn::v3::detail::specs_setter::on_character_set_string<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6306
19.2k
    {
6307
19.2k
        m_specs.charset_string_data = fmt.data();
6308
19.2k
        m_specs.charset_string_size = fmt.size();
6309
19.2k
        on_type(presentation_type::string_set);
6310
19.2k
    }
void scn::v3::detail::specs_setter::on_character_set_string<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6306
9.42k
    {
6307
9.42k
        m_specs.charset_string_data = fmt.data();
6308
9.42k
        m_specs.charset_string_size = fmt.size();
6309
9.42k
        on_type(presentation_type::string_set);
6310
9.42k
    }
6311
6312
    template <typename CharT>
6313
    constexpr void on_regex_pattern(std::basic_string_view<CharT> pattern)
6314
29.6k
    {
6315
29.6k
        m_specs.charset_string_data = pattern.data();
6316
29.6k
        m_specs.charset_string_size = pattern.size();
6317
29.6k
    }
void scn::v3::detail::specs_setter::on_regex_pattern<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6314
29.5k
    {
6315
29.5k
        m_specs.charset_string_data = pattern.data();
6316
29.5k
        m_specs.charset_string_size = pattern.size();
6317
29.5k
    }
void scn::v3::detail::specs_setter::on_regex_pattern<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6314
156
    {
6315
156
        m_specs.charset_string_data = pattern.data();
6316
156
        m_specs.charset_string_size = pattern.size();
6317
156
    }
6318
    constexpr void on_regex_flags(regex_flags flags)
6319
29.3k
    {
6320
29.3k
        m_specs.regexp_flags = flags;
6321
29.3k
    }
6322
6323
    // Intentionally not constexpr
6324
    void on_error(const char* msg)
6325
318k
    {
6326
318k
        SCN_UNLIKELY_ATTR
6327
318k
        m_error = scan_error{scan_error::invalid_format_string, msg};
6328
318k
    }
6329
    void on_error(scan_error err)
6330
0
    {
6331
0
        SCN_LIKELY(err);
6332
0
        m_error = err;
6333
0
    }
6334
6335
    constexpr explicit operator bool() const
6336
33.7M
    {
6337
33.7M
        return static_cast<bool>(m_error);
6338
33.7M
    }
6339
6340
    constexpr scan_error get_error() const
6341
0
    {
6342
0
        return m_error;
6343
0
    }
6344
6345
protected:
6346
    format_specs& m_specs;
6347
    scan_error m_error;
6348
};
6349
6350
template <typename CharT>
6351
constexpr int parse_simple_int(const CharT*& begin, const CharT* end)
6352
43.9k
{
6353
43.9k
    SCN_EXPECT(begin != end);
6354
43.9k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
43.9k
    unsigned long long value = 0;
6357
137k
    do {
6358
137k
        value *= 10;
6359
137k
        value += static_cast<unsigned long long>(*begin - '0');
6360
137k
        if (value >
6361
137k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
110
            return -1;
6363
110
        }
6364
137k
        ++begin;
6365
137k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
43.8k
    return static_cast<int>(value);
6367
43.9k
}
int scn::v3::detail::parse_simple_int<char>(char const*&, char const*)
Line
Count
Source
6352
21.7k
{
6353
21.7k
    SCN_EXPECT(begin != end);
6354
21.7k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
21.7k
    unsigned long long value = 0;
6357
97.0k
    do {
6358
97.0k
        value *= 10;
6359
97.0k
        value += static_cast<unsigned long long>(*begin - '0');
6360
97.0k
        if (value >
6361
97.0k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
110
            return -1;
6363
110
        }
6364
96.9k
        ++begin;
6365
96.9k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
21.6k
    return static_cast<int>(value);
6367
21.7k
}
int scn::v3::detail::parse_simple_int<wchar_t>(wchar_t const*&, wchar_t const*)
Line
Count
Source
6352
22.1k
{
6353
22.1k
    SCN_EXPECT(begin != end);
6354
22.1k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
22.1k
    unsigned long long value = 0;
6357
40.8k
    do {
6358
40.8k
        value *= 10;
6359
40.8k
        value += static_cast<unsigned long long>(*begin - '0');
6360
40.8k
        if (value >
6361
40.8k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
0
            return -1;
6363
0
        }
6364
40.8k
        ++begin;
6365
40.8k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
22.1k
    return static_cast<int>(value);
6367
22.1k
}
6368
6369
template <typename CharT, typename IDHandler>
6370
constexpr const CharT* do_parse_arg_id(const CharT* begin,
6371
                                       const CharT* end,
6372
                                       IDHandler&& handler)
6373
88.5k
{
6374
88.5k
    SCN_EXPECT(begin != end);
6375
6376
88.5k
    CharT c = *begin;
6377
88.5k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
84.6k
        handler.on_error("Invalid argument ID");
6379
84.6k
        return begin;
6380
84.6k
    }
6381
6382
3.85k
    int idx = 0;
6383
3.85k
    if (c != CharT{'0'}) {
6384
718
        idx = parse_simple_int(begin, end);
6385
718
    }
6386
3.13k
    else {
6387
3.13k
        ++begin;
6388
3.13k
    }
6389
6390
3.85k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
490
        handler.on_error("Invalid argument ID");
6392
490
        return begin;
6393
490
    }
6394
3.36k
    handler(idx);
6395
6396
3.36k
    return begin;
6397
3.85k
}
impl.cpp:char const* scn::v3::detail::do_parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
6373
15.4k
{
6374
15.4k
    SCN_EXPECT(begin != end);
6375
6376
15.4k
    CharT c = *begin;
6377
15.4k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
12.2k
        handler.on_error("Invalid argument ID");
6379
12.2k
        return begin;
6380
12.2k
    }
6381
6382
3.29k
    int idx = 0;
6383
3.29k
    if (c != CharT{'0'}) {
6384
392
        idx = parse_simple_int(begin, end);
6385
392
    }
6386
2.89k
    else {
6387
2.89k
        ++begin;
6388
2.89k
    }
6389
6390
3.29k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
214
        handler.on_error("Invalid argument ID");
6392
214
        return begin;
6393
214
    }
6394
3.07k
    handler(idx);
6395
6396
3.07k
    return begin;
6397
3.29k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::do_parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&&)
impl.cpp:wchar_t const* scn::v3::detail::do_parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
6373
73.0k
{
6374
73.0k
    SCN_EXPECT(begin != end);
6375
6376
73.0k
    CharT c = *begin;
6377
73.0k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
72.4k
        handler.on_error("Invalid argument ID");
6379
72.4k
        return begin;
6380
72.4k
    }
6381
6382
564
    int idx = 0;
6383
564
    if (c != CharT{'0'}) {
6384
326
        idx = parse_simple_int(begin, end);
6385
326
    }
6386
238
    else {
6387
238
        ++begin;
6388
238
    }
6389
6390
564
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
276
        handler.on_error("Invalid argument ID");
6392
276
        return begin;
6393
276
    }
6394
288
    handler(idx);
6395
6396
288
    return begin;
6397
564
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::do_parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&&)
6398
6399
template <typename CharT, typename IDHandler>
6400
constexpr const CharT* parse_arg_id(const CharT* begin,
6401
                                    const CharT* end,
6402
                                    IDHandler&& handler)
6403
31.8M
{
6404
31.8M
    SCN_EXPECT(begin != end);
6405
31.8M
    if (*begin != '}' && *begin != ':') {
6406
88.5k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
88.5k
    }
6408
6409
31.8M
    handler();
6410
31.8M
    return begin;
6411
31.8M
}
impl.cpp:char const* scn::v3::detail::parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
6403
3.59M
{
6404
3.59M
    SCN_EXPECT(begin != end);
6405
3.59M
    if (*begin != '}' && *begin != ':') {
6406
15.4k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
15.4k
    }
6408
6409
3.57M
    handler();
6410
3.57M
    return begin;
6411
3.59M
}
impl.cpp:char const* scn::v3::detail::parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&&)
Line
Count
Source
6403
3.50M
{
6404
3.50M
    SCN_EXPECT(begin != end);
6405
3.50M
    if (*begin != '}' && *begin != ':') {
6406
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
0
    }
6408
6409
3.50M
    handler();
6410
3.50M
    return begin;
6411
3.50M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
6403
16.3M
{
6404
16.3M
    SCN_EXPECT(begin != end);
6405
16.3M
    if (*begin != '}' && *begin != ':') {
6406
73.0k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
73.0k
    }
6408
6409
16.2M
    handler();
6410
16.2M
    return begin;
6411
16.3M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&&)
Line
Count
Source
6403
8.44M
{
6404
8.44M
    SCN_EXPECT(begin != end);
6405
8.44M
    if (*begin != '}' && *begin != ':') {
6406
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
0
    }
6408
6409
8.44M
    handler();
6410
8.44M
    return begin;
6411
8.44M
}
6412
6413
template <typename CharT>
6414
constexpr presentation_type parse_presentation_type(CharT type)
6415
29.9M
{
6416
29.9M
    switch (type) {
6417
225k
        case 'b':
6418
365k
        case 'B':
6419
365k
            return presentation_type::int_binary;
6420
749k
        case 'd':
6421
749k
            return presentation_type::int_decimal;
6422
1.00M
        case 'i':
6423
1.00M
            return presentation_type::int_generic;
6424
222
        case 'u':
6425
222
            return presentation_type::int_unsigned_decimal;
6426
393k
        case 'o':
6427
393k
            return presentation_type::int_octal;
6428
845k
        case 'x':
6429
845k
        case 'X':
6430
845k
            return presentation_type::int_hex;
6431
70
        case 'r':
6432
148
        case 'R':
6433
148
            return presentation_type::int_arbitrary_base;
6434
1.15M
        case 'a':
6435
1.15M
        case 'A':
6436
1.15M
            return presentation_type::float_hex;
6437
135k
        case 'e':
6438
135k
        case 'E':
6439
135k
            return presentation_type::float_scientific;
6440
499k
        case 'f':
6441
499k
        case 'F':
6442
499k
            return presentation_type::float_fixed;
6443
883k
        case 'g':
6444
883k
        case 'G':
6445
883k
            return presentation_type::float_general;
6446
23.6M
        case 's':
6447
23.6M
            return presentation_type::string;
6448
14.2k
        case 'c':
6449
14.2k
            return presentation_type::character;
6450
100
        case '?':
6451
100
            return presentation_type::escaped_character;
6452
156
        case 'p':
6453
156
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
295k
        default:
6461
295k
            return presentation_type::none;
6462
29.9M
    }
6463
29.9M
}
scn::v3::detail::presentation_type scn::v3::detail::parse_presentation_type<char>(char)
Line
Count
Source
6415
5.42M
{
6416
5.42M
    switch (type) {
6417
131k
        case 'b':
6418
177k
        case 'B':
6419
177k
            return presentation_type::int_binary;
6420
654k
        case 'd':
6421
654k
            return presentation_type::int_decimal;
6422
906k
        case 'i':
6423
906k
            return presentation_type::int_generic;
6424
88
        case 'u':
6425
88
            return presentation_type::int_unsigned_decimal;
6426
299k
        case 'o':
6427
299k
            return presentation_type::int_octal;
6428
750k
        case 'x':
6429
750k
        case 'X':
6430
750k
            return presentation_type::int_hex;
6431
34
        case 'r':
6432
68
        case 'R':
6433
68
            return presentation_type::int_arbitrary_base;
6434
1.06M
        case 'a':
6435
1.06M
        case 'A':
6436
1.06M
            return presentation_type::float_hex;
6437
65.2k
        case 'e':
6438
65.3k
        case 'E':
6439
65.3k
            return presentation_type::float_scientific;
6440
413k
        case 'f':
6441
413k
        case 'F':
6442
413k
            return presentation_type::float_fixed;
6443
798k
        case 'g':
6444
798k
        case 'G':
6445
798k
            return presentation_type::float_general;
6446
186k
        case 's':
6447
186k
            return presentation_type::string;
6448
4.97k
        case 'c':
6449
4.97k
            return presentation_type::character;
6450
34
        case '?':
6451
34
            return presentation_type::escaped_character;
6452
96
        case 'p':
6453
96
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
98.7k
        default:
6461
98.7k
            return presentation_type::none;
6462
5.42M
    }
6463
5.42M
}
scn::v3::detail::presentation_type scn::v3::detail::parse_presentation_type<wchar_t>(wchar_t)
Line
Count
Source
6415
24.5M
{
6416
24.5M
    switch (type) {
6417
94.0k
        case 'b':
6418
187k
        case 'B':
6419
187k
            return presentation_type::int_binary;
6420
94.6k
        case 'd':
6421
94.6k
            return presentation_type::int_decimal;
6422
94.6k
        case 'i':
6423
94.6k
            return presentation_type::int_generic;
6424
134
        case 'u':
6425
134
            return presentation_type::int_unsigned_decimal;
6426
94.2k
        case 'o':
6427
94.2k
            return presentation_type::int_octal;
6428
94.7k
        case 'x':
6429
94.7k
        case 'X':
6430
94.7k
            return presentation_type::int_hex;
6431
36
        case 'r':
6432
80
        case 'R':
6433
80
            return presentation_type::int_arbitrary_base;
6434
86.0k
        case 'a':
6435
86.1k
        case 'A':
6436
86.1k
            return presentation_type::float_hex;
6437
70.4k
        case 'e':
6438
70.5k
        case 'E':
6439
70.5k
            return presentation_type::float_scientific;
6440
85.6k
        case 'f':
6441
85.7k
        case 'F':
6442
85.7k
            return presentation_type::float_fixed;
6443
85.5k
        case 'g':
6444
85.5k
        case 'G':
6445
85.5k
            return presentation_type::float_general;
6446
23.4M
        case 's':
6447
23.4M
            return presentation_type::string;
6448
9.22k
        case 'c':
6449
9.22k
            return presentation_type::character;
6450
66
        case '?':
6451
66
            return presentation_type::escaped_character;
6452
60
        case 'p':
6453
60
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
196k
        default:
6461
196k
            return presentation_type::none;
6462
24.5M
    }
6463
24.5M
}
6464
6465
template <typename CharT>
6466
constexpr bool is_ascii_letter(CharT ch)
6467
31.4M
{
6468
31.4M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
31.4M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
31.4M
}
bool scn::v3::detail::is_ascii_letter<char>(char)
Line
Count
Source
6467
6.92M
{
6468
6.92M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
6.92M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
6.92M
}
bool scn::v3::detail::is_ascii_letter<wchar_t>(wchar_t)
Line
Count
Source
6467
24.5M
{
6468
24.5M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
24.5M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
24.5M
}
6471
6472
template <typename CharT>
6473
constexpr int code_point_length(const CharT* begin, const CharT* end)
6474
2.32M
{
6475
2.32M
    SCN_EXPECT(begin != end);
6476
2.32M
    if constexpr (sizeof(CharT) != 1) {
6477
1.81M
        return 1;
6478
1.81M
    }
6479
1.81M
    else {
6480
1.81M
        const auto lengths =
6481
1.81M
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
1.81M
            "\3\4";
6483
1.81M
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
1.81M
        return len;
6485
1.81M
    }
6486
2.32M
}
int scn::v3::detail::code_point_length<char>(char const*, char const*)
Line
Count
Source
6474
1.81M
{
6475
1.81M
    SCN_EXPECT(begin != end);
6476
1.81M
    if constexpr (sizeof(CharT) != 1) {
6477
1.81M
        return 1;
6478
1.81M
    }
6479
1.81M
    else {
6480
1.81M
        const auto lengths =
6481
1.81M
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
1.81M
            "\3\4";
6483
1.81M
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
1.81M
        return len;
6485
1.81M
    }
6486
1.81M
}
int scn::v3::detail::code_point_length<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
6474
503k
{
6475
503k
    SCN_EXPECT(begin != end);
6476
503k
    if constexpr (sizeof(CharT) != 1) {
6477
503k
        return 1;
6478
503k
    }
6479
503k
    else {
6480
503k
        const auto lengths =
6481
503k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
503k
            "\3\4";
6483
503k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
503k
        return len;
6485
503k
    }
6486
503k
}
6487
6488
template <typename CharT, typename Handler>
6489
constexpr const CharT* parse_align(const CharT* begin,
6490
                                   const CharT* end,
6491
                                   Handler&& handler)
6492
2.32M
{
6493
2.32M
    SCN_EXPECT(begin != end);
6494
6495
4.63M
    auto check_align = [](wchar_t ch) {
6496
4.63M
        switch (ch) {
6497
1.12k
            case L'<':
6498
1.12k
                return align_type::left;
6499
2.52k
            case L'>':
6500
2.52k
                return align_type::right;
6501
6.22k
            case L'^':
6502
6.22k
                return align_type::center;
6503
4.63M
            default:
6504
4.63M
                return align_type::none;
6505
4.63M
        }
6506
4.63M
    };
impl.cpp:scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
1.86M
    auto check_align = [](wchar_t ch) {
6496
1.86M
        switch (ch) {
6497
904
            case L'<':
6498
904
                return align_type::left;
6499
2.36k
            case L'>':
6500
2.36k
                return align_type::right;
6501
5.59k
            case L'^':
6502
5.59k
                return align_type::center;
6503
1.85M
            default:
6504
1.85M
                return align_type::none;
6505
1.86M
        }
6506
1.86M
    };
impl.cpp:scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
1.76M
    auto check_align = [](wchar_t ch) {
6496
1.76M
        switch (ch) {
6497
0
            case L'<':
6498
0
                return align_type::left;
6499
0
            case L'>':
6500
0
                return align_type::right;
6501
0
            case L'^':
6502
0
                return align_type::center;
6503
1.76M
            default:
6504
1.76M
                return align_type::none;
6505
1.76M
        }
6506
1.76M
    };
impl.cpp:scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
522k
    auto check_align = [](wchar_t ch) {
6496
522k
        switch (ch) {
6497
224
            case L'<':
6498
224
                return align_type::left;
6499
162
            case L'>':
6500
162
                return align_type::right;
6501
630
            case L'^':
6502
630
                return align_type::center;
6503
521k
            default:
6504
521k
                return align_type::none;
6505
522k
        }
6506
522k
    };
impl.cpp:scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
484k
    auto check_align = [](wchar_t ch) {
6496
484k
        switch (ch) {
6497
0
            case L'<':
6498
0
                return align_type::left;
6499
0
            case L'>':
6500
0
                return align_type::right;
6501
0
            case L'^':
6502
0
                return align_type::center;
6503
484k
            default:
6504
484k
                return align_type::none;
6505
484k
        }
6506
484k
    };
6507
6508
2.32M
    auto potential_fill_len = code_point_length(begin, end);
6509
2.32M
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
2.32M
                     std::distance(begin, end) < potential_fill_len)) {
6511
42
        handler.on_error("Invalid encoding in fill character");
6512
42
        return begin;
6513
42
    }
6514
6515
2.32M
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
2.32M
    auto potential_fill = std::basic_string_view<CharT>{
6518
2.32M
        begin, static_cast<size_t>(potential_fill_len)};
6519
2.32M
    const auto begin_before_fill = begin;
6520
2.32M
    begin += potential_fill_len;
6521
6522
2.32M
    if (begin == end) {
6523
1.91k
        return begin_before_fill;
6524
1.91k
    }
6525
6526
2.31M
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
2.31M
    const auto begin_after_fill = begin;
6528
2.31M
    ++begin;
6529
6530
2.31M
    if (potential_fill_len == 1) {
6531
2.31M
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
182
            handler.on_error("Invalid fill character '{' in format string");
6533
182
            return begin;
6534
182
        }
6535
2.31M
        if (potential_fill[0] == '[') {
6536
26.9k
            return begin_before_fill;
6537
26.9k
        }
6538
2.31M
    }
6539
6540
2.29M
    if (potential_align_after_fill == align_type::none) {
6541
2.28M
        if (potential_align_on_fill != align_type::none) {
6542
3.96k
            handler.on_align(potential_align_on_fill);
6543
3.96k
            return begin_after_fill;
6544
3.96k
        }
6545
2.28M
        return begin_before_fill;
6546
2.28M
    }
6547
6548
4.19k
    handler.on_fill(potential_fill);
6549
4.19k
    handler.on_align(potential_align_after_fill);
6550
4.19k
    return begin;
6551
2.29M
}
impl.cpp:char const* scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6492
932k
{
6493
932k
    SCN_EXPECT(begin != end);
6494
6495
932k
    auto check_align = [](wchar_t ch) {
6496
932k
        switch (ch) {
6497
932k
            case L'<':
6498
932k
                return align_type::left;
6499
932k
            case L'>':
6500
932k
                return align_type::right;
6501
932k
            case L'^':
6502
932k
                return align_type::center;
6503
932k
            default:
6504
932k
                return align_type::none;
6505
932k
        }
6506
932k
    };
6507
6508
932k
    auto potential_fill_len = code_point_length(begin, end);
6509
932k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
932k
                     std::distance(begin, end) < potential_fill_len)) {
6511
42
        handler.on_error("Invalid encoding in fill character");
6512
42
        return begin;
6513
42
    }
6514
6515
932k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
932k
    auto potential_fill = std::basic_string_view<CharT>{
6518
932k
        begin, static_cast<size_t>(potential_fill_len)};
6519
932k
    const auto begin_before_fill = begin;
6520
932k
    begin += potential_fill_len;
6521
6522
932k
    if (begin == end) {
6523
1.08k
        return begin_before_fill;
6524
1.08k
    }
6525
6526
931k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
931k
    const auto begin_after_fill = begin;
6528
931k
    ++begin;
6529
6530
931k
    if (potential_fill_len == 1) {
6531
930k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
108
            handler.on_error("Invalid fill character '{' in format string");
6533
108
            return begin;
6534
108
        }
6535
930k
        if (potential_fill[0] == '[') {
6536
14.4k
            return begin_before_fill;
6537
14.4k
        }
6538
930k
    }
6539
6540
916k
    if (potential_align_after_fill == align_type::none) {
6541
912k
        if (potential_align_on_fill != align_type::none) {
6542
3.53k
            handler.on_align(potential_align_on_fill);
6543
3.53k
            return begin_after_fill;
6544
3.53k
        }
6545
909k
        return begin_before_fill;
6546
912k
    }
6547
6548
3.97k
    handler.on_fill(potential_fill);
6549
3.97k
    handler.on_align(potential_align_after_fill);
6550
3.97k
    return begin;
6551
916k
}
impl.cpp:char const* scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6492
884k
{
6493
884k
    SCN_EXPECT(begin != end);
6494
6495
884k
    auto check_align = [](wchar_t ch) {
6496
884k
        switch (ch) {
6497
884k
            case L'<':
6498
884k
                return align_type::left;
6499
884k
            case L'>':
6500
884k
                return align_type::right;
6501
884k
            case L'^':
6502
884k
                return align_type::center;
6503
884k
            default:
6504
884k
                return align_type::none;
6505
884k
        }
6506
884k
    };
6507
6508
884k
    auto potential_fill_len = code_point_length(begin, end);
6509
884k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
884k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
884k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
884k
    auto potential_fill = std::basic_string_view<CharT>{
6518
884k
        begin, static_cast<size_t>(potential_fill_len)};
6519
884k
    const auto begin_before_fill = begin;
6520
884k
    begin += potential_fill_len;
6521
6522
884k
    if (begin == end) {
6523
0
        return begin_before_fill;
6524
0
    }
6525
6526
884k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
884k
    const auto begin_after_fill = begin;
6528
884k
    ++begin;
6529
6530
884k
    if (potential_fill_len == 1) {
6531
884k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
0
            handler.on_error("Invalid fill character '{' in format string");
6533
0
            return begin;
6534
0
        }
6535
884k
        if (potential_fill[0] == '[') {
6536
2.35k
            return begin_before_fill;
6537
2.35k
        }
6538
884k
    }
6539
6540
882k
    if (potential_align_after_fill == align_type::none) {
6541
882k
        if (potential_align_on_fill != align_type::none) {
6542
0
            handler.on_align(potential_align_on_fill);
6543
0
            return begin_after_fill;
6544
0
        }
6545
882k
        return begin_before_fill;
6546
882k
    }
6547
6548
0
    handler.on_fill(potential_fill);
6549
0
    handler.on_align(potential_align_after_fill);
6550
0
    return begin;
6551
882k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6492
261k
{
6493
261k
    SCN_EXPECT(begin != end);
6494
6495
261k
    auto check_align = [](wchar_t ch) {
6496
261k
        switch (ch) {
6497
261k
            case L'<':
6498
261k
                return align_type::left;
6499
261k
            case L'>':
6500
261k
                return align_type::right;
6501
261k
            case L'^':
6502
261k
                return align_type::center;
6503
261k
            default:
6504
261k
                return align_type::none;
6505
261k
        }
6506
261k
    };
6507
6508
261k
    auto potential_fill_len = code_point_length(begin, end);
6509
261k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
261k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
261k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
261k
    auto potential_fill = std::basic_string_view<CharT>{
6518
261k
        begin, static_cast<size_t>(potential_fill_len)};
6519
261k
    const auto begin_before_fill = begin;
6520
261k
    begin += potential_fill_len;
6521
6522
261k
    if (begin == end) {
6523
838
        return begin_before_fill;
6524
838
    }
6525
6526
260k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
260k
    const auto begin_after_fill = begin;
6528
260k
    ++begin;
6529
6530
260k
    if (potential_fill_len == 1) {
6531
260k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
74
            handler.on_error("Invalid fill character '{' in format string");
6533
74
            return begin;
6534
74
        }
6535
260k
        if (potential_fill[0] == '[') {
6536
7.08k
            return begin_before_fill;
6537
7.08k
        }
6538
260k
    }
6539
6540
253k
    if (potential_align_after_fill == align_type::none) {
6541
253k
        if (potential_align_on_fill != align_type::none) {
6542
430
            handler.on_align(potential_align_on_fill);
6543
430
            return begin_after_fill;
6544
430
        }
6545
252k
        return begin_before_fill;
6546
253k
    }
6547
6548
222
    handler.on_fill(potential_fill);
6549
222
    handler.on_align(potential_align_after_fill);
6550
222
    return begin;
6551
253k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6492
242k
{
6493
242k
    SCN_EXPECT(begin != end);
6494
6495
242k
    auto check_align = [](wchar_t ch) {
6496
242k
        switch (ch) {
6497
242k
            case L'<':
6498
242k
                return align_type::left;
6499
242k
            case L'>':
6500
242k
                return align_type::right;
6501
242k
            case L'^':
6502
242k
                return align_type::center;
6503
242k
            default:
6504
242k
                return align_type::none;
6505
242k
        }
6506
242k
    };
6507
6508
242k
    auto potential_fill_len = code_point_length(begin, end);
6509
242k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
242k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
242k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
242k
    auto potential_fill = std::basic_string_view<CharT>{
6518
242k
        begin, static_cast<size_t>(potential_fill_len)};
6519
242k
    const auto begin_before_fill = begin;
6520
242k
    begin += potential_fill_len;
6521
6522
242k
    if (begin == end) {
6523
0
        return begin_before_fill;
6524
0
    }
6525
6526
242k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
242k
    const auto begin_after_fill = begin;
6528
242k
    ++begin;
6529
6530
242k
    if (potential_fill_len == 1) {
6531
242k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
0
            handler.on_error("Invalid fill character '{' in format string");
6533
0
            return begin;
6534
0
        }
6535
242k
        if (potential_fill[0] == '[') {
6536
3.09k
            return begin_before_fill;
6537
3.09k
        }
6538
242k
    }
6539
6540
239k
    if (potential_align_after_fill == align_type::none) {
6541
239k
        if (potential_align_on_fill != align_type::none) {
6542
0
            handler.on_align(potential_align_on_fill);
6543
0
            return begin_after_fill;
6544
0
        }
6545
239k
        return begin_before_fill;
6546
239k
    }
6547
6548
0
    handler.on_fill(potential_fill);
6549
0
    handler.on_align(potential_align_after_fill);
6550
0
    return begin;
6551
239k
}
6552
6553
template <typename CharT, typename Handler>
6554
constexpr const CharT* parse_width(const CharT* begin,
6555
                                   const CharT* end,
6556
                                   Handler&& handler)
6557
2.32M
{
6558
2.32M
    SCN_EXPECT(begin != end);
6559
6560
2.32M
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
36.0k
        int width = parse_simple_int(begin, end);
6562
36.0k
        if (SCN_LIKELY(width != -1)) {
6563
36.0k
            handler.on_width(width);
6564
36.0k
        }
6565
34
        else {
6566
34
            handler.on_error("Invalid field width");
6567
34
            return begin;
6568
34
        }
6569
36.0k
    }
6570
2.32M
    return begin;
6571
2.32M
}
impl.cpp:char const* scn::v3::detail::parse_width<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6557
932k
{
6558
932k
    SCN_EXPECT(begin != end);
6559
6560
932k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
11.2k
        int width = parse_simple_int(begin, end);
6562
11.2k
        if (SCN_LIKELY(width != -1)) {
6563
11.2k
            handler.on_width(width);
6564
11.2k
        }
6565
34
        else {
6566
34
            handler.on_error("Invalid field width");
6567
34
            return begin;
6568
34
        }
6569
11.2k
    }
6570
932k
    return begin;
6571
932k
}
impl.cpp:char const* scn::v3::detail::parse_width<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6557
884k
{
6558
884k
    SCN_EXPECT(begin != end);
6559
6560
884k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
3.05k
        int width = parse_simple_int(begin, end);
6562
3.05k
        if (SCN_LIKELY(width != -1)) {
6563
3.05k
            handler.on_width(width);
6564
3.05k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
3.05k
    }
6570
884k
    return begin;
6571
884k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_width<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6557
261k
{
6558
261k
    SCN_EXPECT(begin != end);
6559
6560
261k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
15.6k
        int width = parse_simple_int(begin, end);
6562
15.6k
        if (SCN_LIKELY(width != -1)) {
6563
15.6k
            handler.on_width(width);
6564
15.6k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
15.6k
    }
6570
261k
    return begin;
6571
261k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_width<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6557
242k
{
6558
242k
    SCN_EXPECT(begin != end);
6559
6560
242k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
6.11k
        int width = parse_simple_int(begin, end);
6562
6.11k
        if (SCN_LIKELY(width != -1)) {
6563
6.11k
            handler.on_width(width);
6564
6.11k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
6.11k
    }
6570
242k
    return begin;
6571
242k
}
6572
6573
template <typename CharT, typename Handler>
6574
constexpr const CharT* parse_precision(const CharT* begin,
6575
                                       const CharT* end,
6576
                                       Handler&& handler)
6577
7.30k
{
6578
7.30k
    SCN_EXPECT(begin != end);
6579
6580
7.30k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
7.14k
        int prec = parse_simple_int(begin, end);
6582
7.14k
        if (SCN_LIKELY(prec != -1)) {
6583
7.09k
            handler.on_precision(prec);
6584
7.09k
        }
6585
42
        else {
6586
42
            handler.on_error("Invalid field precision");
6587
42
            return begin;
6588
42
        }
6589
7.14k
    }
6590
7.26k
    return begin;
6591
7.30k
}
impl.cpp:char const* scn::v3::detail::parse_precision<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6577
7.13k
{
6578
7.13k
    SCN_EXPECT(begin != end);
6579
6580
7.13k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
7.06k
        int prec = parse_simple_int(begin, end);
6582
7.06k
        if (SCN_LIKELY(prec != -1)) {
6583
7.02k
            handler.on_precision(prec);
6584
7.02k
        }
6585
42
        else {
6586
42
            handler.on_error("Invalid field precision");
6587
42
            return begin;
6588
42
        }
6589
7.06k
    }
6590
7.09k
    return begin;
6591
7.13k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::parse_precision<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
impl.cpp:wchar_t const* scn::v3::detail::parse_precision<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6577
170
{
6578
170
    SCN_EXPECT(begin != end);
6579
6580
170
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
78
        int prec = parse_simple_int(begin, end);
6582
78
        if (SCN_LIKELY(prec != -1)) {
6583
78
            handler.on_precision(prec);
6584
78
        }
6585
0
        else {
6586
0
            handler.on_error("Invalid field precision");
6587
0
            return begin;
6588
0
        }
6589
78
    }
6590
170
    return begin;
6591
170
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::parse_precision<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
6592
6593
template <typename CharT, typename SpecHandler>
6594
constexpr char32_t parse_presentation_set_code_point(const CharT*& begin,
6595
                                                     const CharT* end,
6596
                                                     SpecHandler&& handler)
6597
3.00M
{
6598
3.00M
    SCN_EXPECT(begin != end);
6599
6600
3.00M
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
3.00M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
98
        handler.on_error("Invalid encoding in format string");
6603
98
        return invalid_code_point;
6604
98
    }
6605
6606
3.00M
    const auto cp =
6607
3.00M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
3.00M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
364
        handler.on_error("Invalid encoding in format string");
6610
364
        return invalid_code_point;
6611
364
    }
6612
6613
3.00M
    begin += len;
6614
3.00M
    return cp;
6615
3.00M
}
char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6597
731k
{
6598
731k
    SCN_EXPECT(begin != end);
6599
6600
731k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
731k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
731k
    const auto cp =
6607
731k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
731k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
731k
    begin += len;
6614
731k
    return cp;
6615
731k
}
Unexecuted instantiation: char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6597
2.22M
{
6598
2.22M
    SCN_EXPECT(begin != end);
6599
6600
2.22M
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
2.22M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
98
        handler.on_error("Invalid encoding in format string");
6603
98
        return invalid_code_point;
6604
98
    }
6605
6606
2.22M
    const auto cp =
6607
2.22M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
2.22M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
74
        handler.on_error("Invalid encoding in format string");
6610
74
        return invalid_code_point;
6611
74
    }
6612
6613
2.22M
    begin += len;
6614
2.22M
    return cp;
6615
2.22M
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6597
9.40k
{
6598
9.40k
    SCN_EXPECT(begin != end);
6599
6600
9.40k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
9.40k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
9.40k
    const auto cp =
6607
9.40k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
9.40k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
9.40k
    begin += len;
6614
9.40k
    return cp;
6615
9.40k
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6597
28.5k
{
6598
28.5k
    SCN_EXPECT(begin != end);
6599
6600
28.5k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
28.5k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
28.5k
    const auto cp =
6607
28.5k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
28.5k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
290
        handler.on_error("Invalid encoding in format string");
6610
290
        return invalid_code_point;
6611
290
    }
6612
6613
28.2k
    begin += len;
6614
28.2k
    return cp;
6615
28.5k
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6597
12.3k
{
6598
12.3k
    SCN_EXPECT(begin != end);
6599
6600
12.3k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
12.3k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
12.3k
    const auto cp =
6607
12.3k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
12.3k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
12.3k
    begin += len;
6614
12.3k
    return cp;
6615
12.3k
}
6616
6617
template <typename CharT, typename SpecHandler>
6618
constexpr void parse_presentation_set_literal(const CharT*& begin,
6619
                                              const CharT* end,
6620
                                              SpecHandler&& handler)
6621
2.95M
{
6622
2.95M
    SCN_EXPECT(begin != end);
6623
6624
2.95M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
2.95M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
362
        return;
6627
362
    }
6628
6629
2.95M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
2.95M
        *(begin + 1) != CharT{']'}) {
6631
49.3k
        ++begin;
6632
6633
49.3k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
49.3k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
100
            return;
6636
100
        }
6637
6638
49.2k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
76
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
76
            return;
6643
76
        }
6644
6645
49.2k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
49.2k
        return;
6647
49.2k
    }
6648
6649
2.90M
    handler.on_charset_single(cp_first);
6650
2.90M
}
void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6621
727k
{
6622
727k
    SCN_EXPECT(begin != end);
6623
6624
727k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
727k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
727k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
727k
        *(begin + 1) != CharT{']'}) {
6631
3.86k
        ++begin;
6632
6633
3.86k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
3.86k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
3.86k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
3.86k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
3.86k
        return;
6647
3.86k
    }
6648
6649
723k
    handler.on_charset_single(cp_first);
6650
723k
}
Unexecuted instantiation: void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6621
2.20M
{
6622
2.20M
    SCN_EXPECT(begin != end);
6623
6624
2.20M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
2.20M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
102
        return;
6627
102
    }
6628
6629
2.20M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
2.20M
        *(begin + 1) != CharT{']'}) {
6631
21.8k
        ++begin;
6632
6633
21.8k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
21.8k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
70
            return;
6636
70
        }
6637
6638
21.7k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
34
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
34
            return;
6643
34
        }
6644
6645
21.7k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
21.7k
        return;
6647
21.7k
    }
6648
6649
2.18M
    handler.on_charset_single(cp_first);
6650
2.18M
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6621
4.70k
{
6622
4.70k
    SCN_EXPECT(begin != end);
6623
6624
4.70k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
4.70k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
4.70k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
4.70k
        *(begin + 1) != CharT{']'}) {
6631
4.70k
        ++begin;
6632
6633
4.70k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
4.70k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
4.70k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
4.70k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
4.70k
        return;
6647
4.70k
    }
6648
6649
0
    handler.on_charset_single(cp_first);
6650
0
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6621
15.7k
{
6622
15.7k
    SCN_EXPECT(begin != end);
6623
6624
15.7k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
15.7k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
260
        return;
6627
260
    }
6628
6629
15.5k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
15.5k
        *(begin + 1) != CharT{']'}) {
6631
12.7k
        ++begin;
6632
6633
12.7k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
12.7k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
30
            return;
6636
30
        }
6637
6638
12.7k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
42
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
42
            return;
6643
42
        }
6644
6645
12.7k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
12.7k
        return;
6647
12.7k
    }
6648
6649
2.73k
    handler.on_charset_single(cp_first);
6650
2.73k
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6621
6.18k
{
6622
6.18k
    SCN_EXPECT(begin != end);
6623
6624
6.18k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
6.18k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
6.18k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
6.18k
        *(begin + 1) != CharT{']'}) {
6631
6.18k
        ++begin;
6632
6633
6.18k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
6.18k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
6.18k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
6.18k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
6.18k
        return;
6647
6.18k
    }
6648
6649
0
    handler.on_charset_single(cp_first);
6650
0
}
6651
6652
template <typename CharT, typename SpecHandler>
6653
constexpr std::basic_string_view<CharT> parse_presentation_set(
6654
    const CharT*& begin,
6655
    const CharT* end,
6656
    SpecHandler&& handler)
6657
33.7k
{
6658
33.7k
    SCN_EXPECT(begin != end);
6659
33.7k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
33.7k
    auto start = begin;
6662
33.7k
    ++begin;
6663
6664
33.7k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
70
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
70
        return {};
6669
70
    }
6670
33.6k
    if (*begin == CharT{'^'}) {
6671
2.81k
        handler.on_charset_inverted();
6672
2.81k
        ++begin;
6673
2.81k
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
62
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
62
            return {};
6678
62
        }
6679
2.74k
        if (*begin == CharT{']'}) {
6680
164
            handler.on_charset_single(char32_t{']'});
6681
164
            ++begin;
6682
164
        }
6683
2.74k
    }
6684
30.8k
    else if (*begin == CharT{']'}) {
6685
118
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
118
    }
6687
6688
2.98M
    while (begin != end) {
6689
2.98M
        if (SCN_UNLIKELY(!handler)) {
6690
512
            break;
6691
512
        }
6692
6693
2.98M
        if (*begin == CharT{']'}) {
6694
32.1k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
32.1k
        }
6696
6697
2.95M
        parse_presentation_set_literal(begin, end, handler);
6698
2.95M
    }
6699
6700
1.37k
    SCN_UNLIKELY_ATTR
6701
1.37k
    handler.on_error("Invalid [character set] specifier in format string");
6702
1.37k
    return {};
6703
33.5k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6657
3.45k
{
6658
3.45k
    SCN_EXPECT(begin != end);
6659
3.45k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
3.45k
    auto start = begin;
6662
3.45k
    ++begin;
6663
6664
3.45k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
3.45k
    if (*begin == CharT{'^'}) {
6671
348
        handler.on_charset_inverted();
6672
348
        ++begin;
6673
348
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
348
        if (*begin == CharT{']'}) {
6680
6
            handler.on_charset_single(char32_t{']'});
6681
6
            ++begin;
6682
6
        }
6683
348
    }
6684
3.10k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
731k
    while (begin != end) {
6689
731k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
731k
        if (*begin == CharT{']'}) {
6694
3.45k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
3.45k
        }
6696
6697
727k
        parse_presentation_set_literal(begin, end, handler);
6698
727k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
3.45k
}
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6657
17.7k
{
6658
17.7k
    SCN_EXPECT(begin != end);
6659
17.7k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
17.7k
    auto start = begin;
6662
17.7k
    ++begin;
6663
6664
17.7k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
42
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
42
        return {};
6669
42
    }
6670
17.7k
    if (*begin == CharT{'^'}) {
6671
2.15k
        handler.on_charset_inverted();
6672
2.15k
        ++begin;
6673
2.15k
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
34
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
34
            return {};
6678
34
        }
6679
2.12k
        if (*begin == CharT{']'}) {
6680
54
            handler.on_charset_single(char32_t{']'});
6681
54
            ++begin;
6682
54
        }
6683
2.12k
    }
6684
15.5k
    else if (*begin == CharT{']'}) {
6685
34
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
34
    }
6687
6688
2.21M
    while (begin != end) {
6689
2.21M
        if (SCN_UNLIKELY(!handler)) {
6690
214
            break;
6691
214
        }
6692
6693
2.21M
        if (*begin == CharT{']'}) {
6694
16.9k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
16.9k
        }
6696
6697
2.20M
        parse_presentation_set_literal(begin, end, handler);
6698
2.20M
    }
6699
6700
740
    SCN_UNLIKELY_ATTR
6701
740
    handler.on_error("Invalid [character set] specifier in format string");
6702
740
    return {};
6703
17.6k
}
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6657
2.35k
{
6658
2.35k
    SCN_EXPECT(begin != end);
6659
2.35k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
2.35k
    auto start = begin;
6662
2.35k
    ++begin;
6663
6664
2.35k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
2.35k
    if (*begin == CharT{'^'}) {
6671
0
        handler.on_charset_inverted();
6672
0
        ++begin;
6673
0
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
0
        if (*begin == CharT{']'}) {
6680
0
            handler.on_charset_single(char32_t{']'});
6681
0
            ++begin;
6682
0
        }
6683
0
    }
6684
2.35k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
7.05k
    while (begin != end) {
6689
7.05k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
7.05k
        if (*begin == CharT{']'}) {
6694
2.35k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
2.35k
        }
6696
6697
4.70k
        parse_presentation_set_literal(begin, end, handler);
6698
4.70k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
2.35k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6657
7.11k
{
6658
7.11k
    SCN_EXPECT(begin != end);
6659
7.11k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
7.11k
    auto start = begin;
6662
7.11k
    ++begin;
6663
6664
7.11k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
28
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
28
        return {};
6669
28
    }
6670
7.08k
    if (*begin == CharT{'^'}) {
6671
306
        handler.on_charset_inverted();
6672
306
        ++begin;
6673
306
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
28
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
28
            return {};
6678
28
        }
6679
278
        if (*begin == CharT{']'}) {
6680
104
            handler.on_charset_single(char32_t{']'});
6681
104
            ++begin;
6682
104
        }
6683
278
    }
6684
6.78k
    else if (*begin == CharT{']'}) {
6685
84
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
84
    }
6687
6688
22.7k
    while (begin != end) {
6689
22.4k
        if (SCN_UNLIKELY(!handler)) {
6690
298
            break;
6691
298
        }
6692
6693
22.1k
        if (*begin == CharT{']'}) {
6694
6.33k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
6.33k
        }
6696
6697
15.7k
        parse_presentation_set_literal(begin, end, handler);
6698
15.7k
    }
6699
6700
638
    SCN_UNLIKELY_ATTR
6701
638
    handler.on_error("Invalid [character set] specifier in format string");
6702
638
    return {};
6703
6.97k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6657
3.09k
{
6658
3.09k
    SCN_EXPECT(begin != end);
6659
3.09k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
3.09k
    auto start = begin;
6662
3.09k
    ++begin;
6663
6664
3.09k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
3.09k
    if (*begin == CharT{'^'}) {
6671
0
        handler.on_charset_inverted();
6672
0
        ++begin;
6673
0
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
0
        if (*begin == CharT{']'}) {
6680
0
            handler.on_charset_single(char32_t{']'});
6681
0
            ++begin;
6682
0
        }
6683
0
    }
6684
3.09k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
9.27k
    while (begin != end) {
6689
9.27k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
9.27k
        if (*begin == CharT{']'}) {
6694
3.09k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
3.09k
        }
6696
6697
6.18k
        parse_presentation_set_literal(begin, end, handler);
6698
6.18k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
3.09k
}
6704
6705
template <typename CharT, typename SpecHandler>
6706
constexpr const CharT* parse_presentation_regex(const CharT*& begin,
6707
                                                const CharT* end,
6708
                                                SpecHandler&& handler)
6709
30.1k
{
6710
30.1k
#if !SCN_DISABLE_REGEX
6711
30.1k
    SCN_EXPECT(begin != end);
6712
30.1k
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
30.1k
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
30.1k
                  std::is_same_v<CharT, wchar_t>) {
6716
30.1k
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
30.1k
        return begin;
6718
30.1k
    }
6719
6720
30.1k
    auto start = begin;
6721
30.1k
    ++begin;
6722
6723
30.1k
    if (SCN_UNLIKELY(begin == end)) {
6724
70
        handler.on_error("Unexpected end of regex in format string");
6725
70
        return begin;
6726
70
    }
6727
6728
30.0k
    handler.on_type(presentation_type::regex);
6729
5.40M
    for (; begin != end; ++begin) {
6730
5.40M
        if (*begin == CharT{'/'}) {
6731
49.5k
            if (*(begin - 1) != CharT{'\\'}) {
6732
29.7k
                break;
6733
29.7k
            }
6734
19.8k
            else {
6735
19.8k
                handler.on_type(presentation_type::regex_escaped);
6736
19.8k
            }
6737
49.5k
        }
6738
5.40M
    }
6739
30.0k
    if (SCN_UNLIKELY(begin == end)) {
6740
320
        handler.on_error("Unexpected end of regex in format string");
6741
320
        return begin;
6742
320
    }
6743
6744
29.7k
    auto regex_end = begin;
6745
29.7k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
29.7k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
80
        handler.on_error("Invalid (empty) regex in format string");
6748
80
        return begin;
6749
80
    }
6750
29.6k
    handler.on_regex_pattern(regex_pattern);
6751
29.6k
    ++begin;
6752
6753
29.6k
    if (SCN_UNLIKELY(begin == end)) {
6754
66
        handler.on_error("Unexpected end of regex in format string");
6755
66
        return begin;
6756
66
    }
6757
6758
29.6k
    regex_flags flags{regex_flags::none};
6759
29.6k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
29.6k
        {{'m', regex_flags::multiline},
6761
29.6k
         {'s', regex_flags::singleline},
6762
29.6k
         {'i', regex_flags::nocase},
6763
29.6k
         {'n', regex_flags::nocapture}}};
6764
33.7k
    for (; begin != end; ++begin) {
6765
33.6k
        if (*begin == CharT{'}'}) {
6766
29.3k
            break;
6767
29.3k
        }
6768
4.35k
        bool found_flag = false;
6769
11.5k
        for (auto flag : flag_map) {
6770
11.5k
            if (static_cast<CharT>(flag.first) != *begin) {
6771
7.37k
                continue;
6772
7.37k
            }
6773
4.16k
            if ((flags & flag.second) != regex_flags::none) {
6774
34
                handler.on_error("Flag set multiple times in regex");
6775
34
                return begin;
6776
34
            }
6777
4.12k
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
4.12k
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
48
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
48
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
4.12k
#endif
6791
4.12k
            flags |= flag.second;
6792
4.12k
            found_flag = true;
6793
4.12k
            break;
6794
4.16k
        }
6795
4.32k
        if (!found_flag) {
6796
198
            handler.on_error("Invalid flag in regex");
6797
198
            return begin;
6798
198
        }
6799
4.32k
    }
6800
29.3k
    handler.on_regex_flags(flags);
6801
6802
29.3k
    if (SCN_UNLIKELY(begin == end)) {
6803
58
        handler.on_error("Unexpected end of regex in format string");
6804
58
        return begin;
6805
58
    }
6806
6807
29.3k
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
29.3k
}
impl.cpp:char const* scn::v3::detail::parse_presentation_regex<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6709
29.8k
{
6710
29.8k
#if !SCN_DISABLE_REGEX
6711
29.8k
    SCN_EXPECT(begin != end);
6712
29.8k
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
29.8k
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
29.8k
                  std::is_same_v<CharT, wchar_t>) {
6716
29.8k
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
29.8k
        return begin;
6718
29.8k
    }
6719
6720
29.8k
    auto start = begin;
6721
29.8k
    ++begin;
6722
6723
29.8k
    if (SCN_UNLIKELY(begin == end)) {
6724
34
        handler.on_error("Unexpected end of regex in format string");
6725
34
        return begin;
6726
34
    }
6727
6728
29.8k
    handler.on_type(presentation_type::regex);
6729
5.39M
    for (; begin != end; ++begin) {
6730
5.39M
        if (*begin == CharT{'/'}) {
6731
49.4k
            if (*(begin - 1) != CharT{'\\'}) {
6732
29.5k
                break;
6733
29.5k
            }
6734
19.8k
            else {
6735
19.8k
                handler.on_type(presentation_type::regex_escaped);
6736
19.8k
            }
6737
49.4k
        }
6738
5.39M
    }
6739
29.8k
    if (SCN_UNLIKELY(begin == end)) {
6740
244
        handler.on_error("Unexpected end of regex in format string");
6741
244
        return begin;
6742
244
    }
6743
6744
29.5k
    auto regex_end = begin;
6745
29.5k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
29.5k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
52
        handler.on_error("Invalid (empty) regex in format string");
6748
52
        return begin;
6749
52
    }
6750
29.5k
    handler.on_regex_pattern(regex_pattern);
6751
29.5k
    ++begin;
6752
6753
29.5k
    if (SCN_UNLIKELY(begin == end)) {
6754
34
        handler.on_error("Unexpected end of regex in format string");
6755
34
        return begin;
6756
34
    }
6757
6758
29.4k
    regex_flags flags{regex_flags::none};
6759
29.4k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
29.4k
        {{'m', regex_flags::multiline},
6761
29.4k
         {'s', regex_flags::singleline},
6762
29.4k
         {'i', regex_flags::nocase},
6763
29.4k
         {'n', regex_flags::nocapture}}};
6764
33.6k
    for (; begin != end; ++begin) {
6765
33.5k
        if (*begin == CharT{'}'}) {
6766
29.2k
            break;
6767
29.2k
        }
6768
4.28k
        bool found_flag = false;
6769
11.2k
        for (auto flag : flag_map) {
6770
11.2k
            if (static_cast<CharT>(flag.first) != *begin) {
6771
7.09k
                continue;
6772
7.09k
            }
6773
4.16k
            if ((flags & flag.second) != regex_flags::none) {
6774
34
                handler.on_error("Flag set multiple times in regex");
6775
34
                return begin;
6776
34
            }
6777
4.12k
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
4.12k
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
48
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
48
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
4.12k
#endif
6791
4.12k
            flags |= flag.second;
6792
4.12k
            found_flag = true;
6793
4.12k
            break;
6794
4.16k
        }
6795
4.25k
        if (!found_flag) {
6796
128
            handler.on_error("Invalid flag in regex");
6797
128
            return begin;
6798
128
        }
6799
4.25k
    }
6800
29.3k
    handler.on_regex_flags(flags);
6801
6802
29.3k
    if (SCN_UNLIKELY(begin == end)) {
6803
58
        handler.on_error("Unexpected end of regex in format string");
6804
58
        return begin;
6805
58
    }
6806
6807
29.2k
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
29.3k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::parse_presentation_regex<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
impl.cpp:wchar_t const* scn::v3::detail::parse_presentation_regex<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6709
296
{
6710
296
#if !SCN_DISABLE_REGEX
6711
296
    SCN_EXPECT(begin != end);
6712
296
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
296
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
296
                  std::is_same_v<CharT, wchar_t>) {
6716
296
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
296
        return begin;
6718
296
    }
6719
6720
296
    auto start = begin;
6721
296
    ++begin;
6722
6723
296
    if (SCN_UNLIKELY(begin == end)) {
6724
36
        handler.on_error("Unexpected end of regex in format string");
6725
36
        return begin;
6726
36
    }
6727
6728
260
    handler.on_type(presentation_type::regex);
6729
1.82k
    for (; begin != end; ++begin) {
6730
1.75k
        if (*begin == CharT{'/'}) {
6731
184
            if (*(begin - 1) != CharT{'\\'}) {
6732
184
                break;
6733
184
            }
6734
0
            else {
6735
0
                handler.on_type(presentation_type::regex_escaped);
6736
0
            }
6737
184
        }
6738
1.75k
    }
6739
260
    if (SCN_UNLIKELY(begin == end)) {
6740
76
        handler.on_error("Unexpected end of regex in format string");
6741
76
        return begin;
6742
76
    }
6743
6744
184
    auto regex_end = begin;
6745
184
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
184
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
28
        handler.on_error("Invalid (empty) regex in format string");
6748
28
        return begin;
6749
28
    }
6750
156
    handler.on_regex_pattern(regex_pattern);
6751
156
    ++begin;
6752
6753
156
    if (SCN_UNLIKELY(begin == end)) {
6754
32
        handler.on_error("Unexpected end of regex in format string");
6755
32
        return begin;
6756
32
    }
6757
6758
124
    regex_flags flags{regex_flags::none};
6759
124
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
124
        {{'m', regex_flags::multiline},
6761
124
         {'s', regex_flags::singleline},
6762
124
         {'i', regex_flags::nocase},
6763
124
         {'n', regex_flags::nocapture}}};
6764
124
    for (; begin != end; ++begin) {
6765
124
        if (*begin == CharT{'}'}) {
6766
54
            break;
6767
54
        }
6768
70
        bool found_flag = false;
6769
280
        for (auto flag : flag_map) {
6770
280
            if (static_cast<CharT>(flag.first) != *begin) {
6771
280
                continue;
6772
280
            }
6773
0
            if ((flags & flag.second) != regex_flags::none) {
6774
0
                handler.on_error("Flag set multiple times in regex");
6775
0
                return begin;
6776
0
            }
6777
0
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
0
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
0
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
0
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
0
#endif
6791
0
            flags |= flag.second;
6792
0
            found_flag = true;
6793
0
            break;
6794
0
        }
6795
70
        if (!found_flag) {
6796
70
            handler.on_error("Invalid flag in regex");
6797
70
            return begin;
6798
70
        }
6799
70
    }
6800
54
    handler.on_regex_flags(flags);
6801
6802
54
    if (SCN_UNLIKELY(begin == end)) {
6803
0
        handler.on_error("Unexpected end of regex in format string");
6804
0
        return begin;
6805
0
    }
6806
6807
54
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
54
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::parse_presentation_regex<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
6813
6814
template <typename CharT, typename SpecHandler>
6815
constexpr const CharT* parse_format_specs(const CharT* begin,
6816
                                          const CharT* end,
6817
                                          SpecHandler&& handler)
6818
31.8M
{
6819
31.8M
    auto do_presentation = [&]() -> const CharT* {
6820
30.0M
        if (*begin == CharT{'['}) {
6821
30.3k
            auto set = parse_presentation_set(begin, end, handler);
6822
30.3k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
1.62k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
1.62k
                return begin;
6827
1.62k
            }
6828
28.6k
            handler.on_character_set_string(set);
6829
28.6k
            return begin;
6830
30.3k
        }
6831
29.9M
        if (*begin == CharT{'/'}) {
6832
30.1k
            return parse_presentation_regex(begin, end, handler);
6833
30.1k
        }
6834
29.9M
        presentation_type type = parse_presentation_type(*begin++);
6835
29.9M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
295k
            handler.on_error("Invalid type specifier in format string");
6837
295k
            return begin;
6838
295k
        }
6839
29.6M
        handler.on_type(type);
6840
29.6M
        return begin;
6841
29.9M
    };
impl.cpp:scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
2.77M
    auto do_presentation = [&]() -> const CharT* {
6820
2.77M
        if (*begin == CharT{'['}) {
6821
17.7k
            auto set = parse_presentation_set(begin, end, handler);
6822
17.7k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
850
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
850
                return begin;
6827
850
            }
6828
16.9k
            handler.on_character_set_string(set);
6829
16.9k
            return begin;
6830
17.7k
        }
6831
2.75M
        if (*begin == CharT{'/'}) {
6832
29.8k
            return parse_presentation_regex(begin, end, handler);
6833
29.8k
        }
6834
2.72M
        presentation_type type = parse_presentation_type(*begin++);
6835
2.72M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
50.4k
            handler.on_error("Invalid type specifier in format string");
6837
50.4k
            return begin;
6838
50.4k
        }
6839
2.67M
        handler.on_type(type);
6840
2.67M
        return begin;
6841
2.72M
    };
impl.cpp:scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
2.69M
    auto do_presentation = [&]() -> const CharT* {
6820
2.69M
        if (*begin == CharT{'['}) {
6821
2.35k
            auto set = parse_presentation_set(begin, end, handler);
6822
2.35k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
0
                return begin;
6827
0
            }
6828
2.35k
            handler.on_character_set_string(set);
6829
2.35k
            return begin;
6830
2.35k
        }
6831
2.69M
        if (*begin == CharT{'/'}) {
6832
0
            return parse_presentation_regex(begin, end, handler);
6833
0
        }
6834
2.69M
        presentation_type type = parse_presentation_type(*begin++);
6835
2.69M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
48.2k
            handler.on_error("Invalid type specifier in format string");
6837
48.2k
            return begin;
6838
48.2k
        }
6839
2.64M
        handler.on_type(type);
6840
2.64M
        return begin;
6841
2.69M
    };
impl.cpp:scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
16.1M
    auto do_presentation = [&]() -> const CharT* {
6820
16.1M
        if (*begin == CharT{'['}) {
6821
7.11k
            auto set = parse_presentation_set(begin, end, handler);
6822
7.11k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
778
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
778
                return begin;
6827
778
            }
6828
6.33k
            handler.on_character_set_string(set);
6829
6.33k
            return begin;
6830
7.11k
        }
6831
16.1M
        if (*begin == CharT{'/'}) {
6832
296
            return parse_presentation_regex(begin, end, handler);
6833
296
        }
6834
16.1M
        presentation_type type = parse_presentation_type(*begin++);
6835
16.1M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
100k
            handler.on_error("Invalid type specifier in format string");
6837
100k
            return begin;
6838
100k
        }
6839
16.0M
        handler.on_type(type);
6840
16.0M
        return begin;
6841
16.1M
    };
impl.cpp:scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
8.35M
    auto do_presentation = [&]() -> const CharT* {
6820
8.35M
        if (*begin == CharT{'['}) {
6821
3.09k
            auto set = parse_presentation_set(begin, end, handler);
6822
3.09k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
0
                return begin;
6827
0
            }
6828
3.09k
            handler.on_character_set_string(set);
6829
3.09k
            return begin;
6830
3.09k
        }
6831
8.35M
        if (*begin == CharT{'/'}) {
6832
0
            return parse_presentation_regex(begin, end, handler);
6833
0
        }
6834
8.35M
        presentation_type type = parse_presentation_type(*begin++);
6835
8.35M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
96.4k
            handler.on_error("Invalid type specifier in format string");
6837
96.4k
            return begin;
6838
96.4k
        }
6839
8.25M
        handler.on_type(type);
6840
8.25M
        return begin;
6841
8.35M
    };
6842
6843
31.8M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
31.8M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
29.4M
        return do_presentation();
6846
29.4M
    }
6847
6848
2.32M
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
2.32M
    begin = parse_align(begin, end, handler);
6854
2.32M
    if (SCN_UNLIKELY(begin == end)) {
6855
248
        handler.on_error("Unexpected end of format string");
6856
248
        return begin;
6857
248
    }
6858
6859
2.32M
    begin = parse_width(begin, end, handler);
6860
2.32M
    if (SCN_UNLIKELY(begin == end)) {
6861
202
        handler.on_error("Unexpected end of format string");
6862
202
        return begin;
6863
202
    }
6864
6865
2.32M
    if (*begin == CharT{'.'}) {
6866
7.37k
        ++begin;
6867
7.37k
        if (SCN_UNLIKELY(begin == end)) {
6868
68
            handler.on_error("Unexpected end of format string");
6869
68
            return begin;
6870
68
        }
6871
7.30k
        begin = parse_precision(begin, end, handler);
6872
7.30k
        if (SCN_UNLIKELY(begin == end)) {
6873
106
            handler.on_error("Unexpected end of format string");
6874
106
            return begin;
6875
106
        }
6876
7.30k
    }
6877
6878
2.32M
    if (*begin == CharT{'L'}) {
6879
1.79M
        handler.on_localized();
6880
1.79M
        ++begin;
6881
1.79M
    }
6882
2.32M
    if (SCN_UNLIKELY(begin == end)) {
6883
88
        handler.on_error("Unexpected end of format string");
6884
88
        return begin;
6885
88
    }
6886
6887
2.32M
    if (begin != end && *begin != CharT{'}'}) {
6888
513k
        do_presentation();
6889
513k
    }
6890
2.32M
    if (SCN_UNLIKELY(begin == end)) {
6891
3.70k
        handler.on_error("Unexpected end of format string");
6892
3.70k
        return begin;
6893
3.70k
    }
6894
6895
2.31M
    return begin;
6896
2.32M
}
impl.cpp:char const* scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6818
3.58M
{
6819
3.58M
    auto do_presentation = [&]() -> const CharT* {
6820
3.58M
        if (*begin == CharT{'['}) {
6821
3.58M
            auto set = parse_presentation_set(begin, end, handler);
6822
3.58M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
3.58M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
3.58M
                return begin;
6827
3.58M
            }
6828
3.58M
            handler.on_character_set_string(set);
6829
3.58M
            return begin;
6830
3.58M
        }
6831
3.58M
        if (*begin == CharT{'/'}) {
6832
3.58M
            return parse_presentation_regex(begin, end, handler);
6833
3.58M
        }
6834
3.58M
        presentation_type type = parse_presentation_type(*begin++);
6835
3.58M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
3.58M
            handler.on_error("Invalid type specifier in format string");
6837
3.58M
            return begin;
6838
3.58M
        }
6839
3.58M
        handler.on_type(type);
6840
3.58M
        return begin;
6841
3.58M
    };
6842
6843
3.58M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
3.58M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
2.64M
        return do_presentation();
6846
2.64M
    }
6847
6848
932k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
932k
    begin = parse_align(begin, end, handler);
6854
932k
    if (SCN_UNLIKELY(begin == end)) {
6855
118
        handler.on_error("Unexpected end of format string");
6856
118
        return begin;
6857
118
    }
6858
6859
932k
    begin = parse_width(begin, end, handler);
6860
932k
    if (SCN_UNLIKELY(begin == end)) {
6861
120
        handler.on_error("Unexpected end of format string");
6862
120
        return begin;
6863
120
    }
6864
6865
931k
    if (*begin == CharT{'.'}) {
6866
7.17k
        ++begin;
6867
7.17k
        if (SCN_UNLIKELY(begin == end)) {
6868
34
            handler.on_error("Unexpected end of format string");
6869
34
            return begin;
6870
34
        }
6871
7.13k
        begin = parse_precision(begin, end, handler);
6872
7.13k
        if (SCN_UNLIKELY(begin == end)) {
6873
82
            handler.on_error("Unexpected end of format string");
6874
82
            return begin;
6875
82
        }
6876
7.13k
    }
6877
6878
931k
    if (*begin == CharT{'L'}) {
6879
800k
        handler.on_localized();
6880
800k
        ++begin;
6881
800k
    }
6882
931k
    if (SCN_UNLIKELY(begin == end)) {
6883
52
        handler.on_error("Unexpected end of format string");
6884
52
        return begin;
6885
52
    }
6886
6887
931k
    if (begin != end && *begin != CharT{'}'}) {
6888
127k
        do_presentation();
6889
127k
    }
6890
931k
    if (SCN_UNLIKELY(begin == end)) {
6891
2.09k
        handler.on_error("Unexpected end of format string");
6892
2.09k
        return begin;
6893
2.09k
    }
6894
6895
929k
    return begin;
6896
931k
}
impl.cpp:char const* scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6818
3.50M
{
6819
3.50M
    auto do_presentation = [&]() -> const CharT* {
6820
3.50M
        if (*begin == CharT{'['}) {
6821
3.50M
            auto set = parse_presentation_set(begin, end, handler);
6822
3.50M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
3.50M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
3.50M
                return begin;
6827
3.50M
            }
6828
3.50M
            handler.on_character_set_string(set);
6829
3.50M
            return begin;
6830
3.50M
        }
6831
3.50M
        if (*begin == CharT{'/'}) {
6832
3.50M
            return parse_presentation_regex(begin, end, handler);
6833
3.50M
        }
6834
3.50M
        presentation_type type = parse_presentation_type(*begin++);
6835
3.50M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
3.50M
            handler.on_error("Invalid type specifier in format string");
6837
3.50M
            return begin;
6838
3.50M
        }
6839
3.50M
        handler.on_type(type);
6840
3.50M
        return begin;
6841
3.50M
    };
6842
6843
3.50M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
3.50M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
2.62M
        return do_presentation();
6846
2.62M
    }
6847
6848
884k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
884k
    begin = parse_align(begin, end, handler);
6854
884k
    if (SCN_UNLIKELY(begin == end)) {
6855
0
        handler.on_error("Unexpected end of format string");
6856
0
        return begin;
6857
0
    }
6858
6859
884k
    begin = parse_width(begin, end, handler);
6860
884k
    if (SCN_UNLIKELY(begin == end)) {
6861
0
        handler.on_error("Unexpected end of format string");
6862
0
        return begin;
6863
0
    }
6864
6865
884k
    if (*begin == CharT{'.'}) {
6866
0
        ++begin;
6867
0
        if (SCN_UNLIKELY(begin == end)) {
6868
0
            handler.on_error("Unexpected end of format string");
6869
0
            return begin;
6870
0
        }
6871
0
        begin = parse_precision(begin, end, handler);
6872
0
        if (SCN_UNLIKELY(begin == end)) {
6873
0
            handler.on_error("Unexpected end of format string");
6874
0
            return begin;
6875
0
        }
6876
0
    }
6877
6878
884k
    if (*begin == CharT{'L'}) {
6879
809k
        handler.on_localized();
6880
809k
        ++begin;
6881
809k
    }
6882
884k
    if (SCN_UNLIKELY(begin == end)) {
6883
0
        handler.on_error("Unexpected end of format string");
6884
0
        return begin;
6885
0
    }
6886
6887
884k
    if (begin != end && *begin != CharT{'}'}) {
6888
75.4k
        do_presentation();
6889
75.4k
    }
6890
884k
    if (SCN_UNLIKELY(begin == end)) {
6891
0
        handler.on_error("Unexpected end of format string");
6892
0
        return begin;
6893
0
    }
6894
6895
884k
    return begin;
6896
884k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6818
16.2M
{
6819
16.2M
    auto do_presentation = [&]() -> const CharT* {
6820
16.2M
        if (*begin == CharT{'['}) {
6821
16.2M
            auto set = parse_presentation_set(begin, end, handler);
6822
16.2M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
16.2M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
16.2M
                return begin;
6827
16.2M
            }
6828
16.2M
            handler.on_character_set_string(set);
6829
16.2M
            return begin;
6830
16.2M
        }
6831
16.2M
        if (*begin == CharT{'/'}) {
6832
16.2M
            return parse_presentation_regex(begin, end, handler);
6833
16.2M
        }
6834
16.2M
        presentation_type type = parse_presentation_type(*begin++);
6835
16.2M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
16.2M
            handler.on_error("Invalid type specifier in format string");
6837
16.2M
            return begin;
6838
16.2M
        }
6839
16.2M
        handler.on_type(type);
6840
16.2M
        return begin;
6841
16.2M
    };
6842
6843
16.2M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
16.2M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
16.0M
        return do_presentation();
6846
16.0M
    }
6847
6848
261k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
261k
    begin = parse_align(begin, end, handler);
6854
261k
    if (SCN_UNLIKELY(begin == end)) {
6855
130
        handler.on_error("Unexpected end of format string");
6856
130
        return begin;
6857
130
    }
6858
6859
261k
    begin = parse_width(begin, end, handler);
6860
261k
    if (SCN_UNLIKELY(begin == end)) {
6861
82
        handler.on_error("Unexpected end of format string");
6862
82
        return begin;
6863
82
    }
6864
6865
261k
    if (*begin == CharT{'.'}) {
6866
204
        ++begin;
6867
204
        if (SCN_UNLIKELY(begin == end)) {
6868
34
            handler.on_error("Unexpected end of format string");
6869
34
            return begin;
6870
34
        }
6871
170
        begin = parse_precision(begin, end, handler);
6872
170
        if (SCN_UNLIKELY(begin == end)) {
6873
24
            handler.on_error("Unexpected end of format string");
6874
24
            return begin;
6875
24
        }
6876
170
    }
6877
6878
261k
    if (*begin == CharT{'L'}) {
6879
96.2k
        handler.on_localized();
6880
96.2k
        ++begin;
6881
96.2k
    }
6882
261k
    if (SCN_UNLIKELY(begin == end)) {
6883
36
        handler.on_error("Unexpected end of format string");
6884
36
        return begin;
6885
36
    }
6886
6887
261k
    if (begin != end && *begin != CharT{'}'}) {
6888
161k
        do_presentation();
6889
161k
    }
6890
261k
    if (SCN_UNLIKELY(begin == end)) {
6891
1.61k
        handler.on_error("Unexpected end of format string");
6892
1.61k
        return begin;
6893
1.61k
    }
6894
6895
259k
    return begin;
6896
261k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6818
8.44M
{
6819
8.44M
    auto do_presentation = [&]() -> const CharT* {
6820
8.44M
        if (*begin == CharT{'['}) {
6821
8.44M
            auto set = parse_presentation_set(begin, end, handler);
6822
8.44M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
8.44M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
8.44M
                return begin;
6827
8.44M
            }
6828
8.44M
            handler.on_character_set_string(set);
6829
8.44M
            return begin;
6830
8.44M
        }
6831
8.44M
        if (*begin == CharT{'/'}) {
6832
8.44M
            return parse_presentation_regex(begin, end, handler);
6833
8.44M
        }
6834
8.44M
        presentation_type type = parse_presentation_type(*begin++);
6835
8.44M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
8.44M
            handler.on_error("Invalid type specifier in format string");
6837
8.44M
            return begin;
6838
8.44M
        }
6839
8.44M
        handler.on_type(type);
6840
8.44M
        return begin;
6841
8.44M
    };
6842
6843
8.44M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
8.44M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
8.20M
        return do_presentation();
6846
8.20M
    }
6847
6848
242k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
242k
    begin = parse_align(begin, end, handler);
6854
242k
    if (SCN_UNLIKELY(begin == end)) {
6855
0
        handler.on_error("Unexpected end of format string");
6856
0
        return begin;
6857
0
    }
6858
6859
242k
    begin = parse_width(begin, end, handler);
6860
242k
    if (SCN_UNLIKELY(begin == end)) {
6861
0
        handler.on_error("Unexpected end of format string");
6862
0
        return begin;
6863
0
    }
6864
6865
242k
    if (*begin == CharT{'.'}) {
6866
0
        ++begin;
6867
0
        if (SCN_UNLIKELY(begin == end)) {
6868
0
            handler.on_error("Unexpected end of format string");
6869
0
            return begin;
6870
0
        }
6871
0
        begin = parse_precision(begin, end, handler);
6872
0
        if (SCN_UNLIKELY(begin == end)) {
6873
0
            handler.on_error("Unexpected end of format string");
6874
0
            return begin;
6875
0
        }
6876
0
    }
6877
6878
242k
    if (*begin == CharT{'L'}) {
6879
92.9k
        handler.on_localized();
6880
92.9k
        ++begin;
6881
92.9k
    }
6882
242k
    if (SCN_UNLIKELY(begin == end)) {
6883
0
        handler.on_error("Unexpected end of format string");
6884
0
        return begin;
6885
0
    }
6886
6887
242k
    if (begin != end && *begin != CharT{'}'}) {
6888
149k
        do_presentation();
6889
149k
    }
6890
242k
    if (SCN_UNLIKELY(begin == end)) {
6891
0
        handler.on_error("Unexpected end of format string");
6892
0
        return begin;
6893
0
    }
6894
6895
242k
    return begin;
6896
242k
}
6897
6898
template <typename CharT, typename Handler>
6899
constexpr const CharT* parse_replacement_field(const CharT* begin,
6900
                                               const CharT* end,
6901
                                               Handler& handler)
6902
31.9M
{
6903
31.9M
    struct id_adapter {
6904
31.9M
        constexpr void operator()()
6905
31.9M
        {
6906
31.8M
            arg_id = handler.on_arg_id();
6907
31.8M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()()
Line
Count
Source
6905
3.57M
        {
6906
3.57M
            arg_id = handler.on_arg_id();
6907
3.57M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()()
Line
Count
Source
6905
3.50M
        {
6906
3.50M
            arg_id = handler.on_arg_id();
6907
3.50M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
6905
16.2M
        {
6906
16.2M
            arg_id = handler.on_arg_id();
6907
16.2M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
6905
8.44M
        {
6906
8.44M
            arg_id = handler.on_arg_id();
6907
8.44M
        }
6908
31.9M
        constexpr void operator()(std::size_t id)
6909
31.9M
        {
6910
3.36k
            arg_id = handler.on_arg_id(id);
6911
3.36k
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
6909
3.07k
        {
6910
3.07k
            arg_id = handler.on_arg_id(id);
6911
3.07k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()(unsigned long)
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
6909
288
        {
6910
288
            arg_id = handler.on_arg_id(id);
6911
288
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()(unsigned long)
6912
6913
31.9M
        constexpr void on_error(const char* msg)
6914
31.9M
        {
6915
85.1k
            SCN_UNLIKELY_ATTR
6916
85.1k
            handler.on_error(msg);
6917
85.1k
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::on_error(char const*)
Line
Count
Source
6914
12.4k
        {
6915
12.4k
            SCN_UNLIKELY_ATTR
6916
12.4k
            handler.on_error(msg);
6917
12.4k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::on_error(char const*)
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::on_error(char const*)
Line
Count
Source
6914
72.7k
        {
6915
72.7k
            SCN_UNLIKELY_ATTR
6916
72.7k
            handler.on_error(msg);
6917
72.7k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::on_error(char const*)
6918
6919
31.9M
        Handler& handler;
6920
31.9M
        std::size_t arg_id;
6921
31.9M
    };
6922
6923
31.9M
    ++begin;
6924
31.9M
    if (SCN_UNLIKELY(begin == end)) {
6925
162
        handler.on_error("Unexpected end of replacement field");
6926
162
        return begin;
6927
162
    }
6928
6929
31.9M
    if (*begin == CharT{'}'}) {
6930
11.4k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
11.4k
    }
6932
31.9M
    else if (*begin == CharT{'{'}) {
6933
4.50k
        handler.on_literal_text(begin, begin + 1);
6934
4.50k
    }
6935
31.8M
    else {
6936
31.8M
        auto adapter = id_adapter{handler, 0};
6937
31.8M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
31.8M
        if (SCN_UNLIKELY(begin == end)) {
6940
240
            handler.on_error("Missing '}' in format string");
6941
240
            return begin;
6942
240
        }
6943
6944
31.8M
        if (*begin == CharT{'}'}) {
6945
296
            handler.on_replacement_field(adapter.arg_id, begin);
6946
296
        }
6947
31.8M
        else if (*begin == CharT{':'}) {
6948
31.8M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
120
                handler.on_error("Unexpected end of replacement field");
6950
120
                return begin;
6951
120
            }
6952
31.8M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
31.8M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
453k
                handler.on_error("Unknown format specifier");
6955
453k
                return begin;
6956
453k
            }
6957
31.8M
        }
6958
84.9k
        else {
6959
84.9k
            SCN_UNLIKELY_ATTR
6960
84.9k
            handler.on_error("Missing '}' in format string");
6961
84.9k
            return begin;
6962
84.9k
        }
6963
31.8M
    }
6964
31.3M
    return begin + 1;
6965
31.9M
}
impl.cpp:char const* scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
6902
3.60M
{
6903
3.60M
    struct id_adapter {
6904
3.60M
        constexpr void operator()()
6905
3.60M
        {
6906
3.60M
            arg_id = handler.on_arg_id();
6907
3.60M
        }
6908
3.60M
        constexpr void operator()(std::size_t id)
6909
3.60M
        {
6910
3.60M
            arg_id = handler.on_arg_id(id);
6911
3.60M
        }
6912
6913
3.60M
        constexpr void on_error(const char* msg)
6914
3.60M
        {
6915
3.60M
            SCN_UNLIKELY_ATTR
6916
3.60M
            handler.on_error(msg);
6917
3.60M
        }
6918
6919
3.60M
        Handler& handler;
6920
3.60M
        std::size_t arg_id;
6921
3.60M
    };
6922
6923
3.60M
    ++begin;
6924
3.60M
    if (SCN_UNLIKELY(begin == end)) {
6925
68
        handler.on_error("Unexpected end of replacement field");
6926
68
        return begin;
6927
68
    }
6928
6929
3.60M
    if (*begin == CharT{'}'}) {
6930
6.05k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
6.05k
    }
6932
3.59M
    else if (*begin == CharT{'{'}) {
6933
4.26k
        handler.on_literal_text(begin, begin + 1);
6934
4.26k
    }
6935
3.59M
    else {
6936
3.59M
        auto adapter = id_adapter{handler, 0};
6937
3.59M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
3.59M
        if (SCN_UNLIKELY(begin == end)) {
6940
110
            handler.on_error("Missing '}' in format string");
6941
110
            return begin;
6942
110
        }
6943
6944
3.59M
        if (*begin == CharT{'}'}) {
6945
176
            handler.on_replacement_field(adapter.arg_id, begin);
6946
176
        }
6947
3.59M
        else if (*begin == CharT{':'}) {
6948
3.58M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
74
                handler.on_error("Unexpected end of replacement field");
6950
74
                return begin;
6951
74
            }
6952
3.58M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
3.58M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
79.3k
                handler.on_error("Unknown format specifier");
6955
79.3k
                return begin;
6956
79.3k
            }
6957
3.58M
        }
6958
12.3k
        else {
6959
12.3k
            SCN_UNLIKELY_ATTR
6960
12.3k
            handler.on_error("Missing '}' in format string");
6961
12.3k
            return begin;
6962
12.3k
        }
6963
3.59M
    }
6964
3.51M
    return begin + 1;
6965
3.60M
}
impl.cpp:char const* scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
6902
3.50M
{
6903
3.50M
    struct id_adapter {
6904
3.50M
        constexpr void operator()()
6905
3.50M
        {
6906
3.50M
            arg_id = handler.on_arg_id();
6907
3.50M
        }
6908
3.50M
        constexpr void operator()(std::size_t id)
6909
3.50M
        {
6910
3.50M
            arg_id = handler.on_arg_id(id);
6911
3.50M
        }
6912
6913
3.50M
        constexpr void on_error(const char* msg)
6914
3.50M
        {
6915
3.50M
            SCN_UNLIKELY_ATTR
6916
3.50M
            handler.on_error(msg);
6917
3.50M
        }
6918
6919
3.50M
        Handler& handler;
6920
3.50M
        std::size_t arg_id;
6921
3.50M
    };
6922
6923
3.50M
    ++begin;
6924
3.50M
    if (SCN_UNLIKELY(begin == end)) {
6925
0
        handler.on_error("Unexpected end of replacement field");
6926
0
        return begin;
6927
0
    }
6928
6929
3.50M
    if (*begin == CharT{'}'}) {
6930
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
0
    }
6932
3.50M
    else if (*begin == CharT{'{'}) {
6933
0
        handler.on_literal_text(begin, begin + 1);
6934
0
    }
6935
3.50M
    else {
6936
3.50M
        auto adapter = id_adapter{handler, 0};
6937
3.50M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
3.50M
        if (SCN_UNLIKELY(begin == end)) {
6940
0
            handler.on_error("Missing '}' in format string");
6941
0
            return begin;
6942
0
        }
6943
6944
3.50M
        if (*begin == CharT{'}'}) {
6945
0
            handler.on_replacement_field(adapter.arg_id, begin);
6946
0
        }
6947
3.50M
        else if (*begin == CharT{':'}) {
6948
3.50M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
0
                handler.on_error("Unexpected end of replacement field");
6950
0
                return begin;
6951
0
            }
6952
3.50M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
3.50M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
73.1k
                handler.on_error("Unknown format specifier");
6955
73.1k
                return begin;
6956
73.1k
            }
6957
3.50M
        }
6958
0
        else {
6959
0
            SCN_UNLIKELY_ATTR
6960
0
            handler.on_error("Missing '}' in format string");
6961
0
            return begin;
6962
0
        }
6963
3.50M
    }
6964
3.43M
    return begin + 1;
6965
3.50M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
6902
16.3M
{
6903
16.3M
    struct id_adapter {
6904
16.3M
        constexpr void operator()()
6905
16.3M
        {
6906
16.3M
            arg_id = handler.on_arg_id();
6907
16.3M
        }
6908
16.3M
        constexpr void operator()(std::size_t id)
6909
16.3M
        {
6910
16.3M
            arg_id = handler.on_arg_id(id);
6911
16.3M
        }
6912
6913
16.3M
        constexpr void on_error(const char* msg)
6914
16.3M
        {
6915
16.3M
            SCN_UNLIKELY_ATTR
6916
16.3M
            handler.on_error(msg);
6917
16.3M
        }
6918
6919
16.3M
        Handler& handler;
6920
16.3M
        std::size_t arg_id;
6921
16.3M
    };
6922
6923
16.3M
    ++begin;
6924
16.3M
    if (SCN_UNLIKELY(begin == end)) {
6925
94
        handler.on_error("Unexpected end of replacement field");
6926
94
        return begin;
6927
94
    }
6928
6929
16.3M
    if (*begin == CharT{'}'}) {
6930
5.35k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
5.35k
    }
6932
16.3M
    else if (*begin == CharT{'{'}) {
6933
240
        handler.on_literal_text(begin, begin + 1);
6934
240
    }
6935
16.3M
    else {
6936
16.3M
        auto adapter = id_adapter{handler, 0};
6937
16.3M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
16.3M
        if (SCN_UNLIKELY(begin == end)) {
6940
130
            handler.on_error("Missing '}' in format string");
6941
130
            return begin;
6942
130
        }
6943
6944
16.3M
        if (*begin == CharT{'}'}) {
6945
120
            handler.on_replacement_field(adapter.arg_id, begin);
6946
120
        }
6947
16.3M
        else if (*begin == CharT{':'}) {
6948
16.2M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
46
                handler.on_error("Unexpected end of replacement field");
6950
46
                return begin;
6951
46
            }
6952
16.2M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
16.2M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
154k
                handler.on_error("Unknown format specifier");
6955
154k
                return begin;
6956
154k
            }
6957
16.2M
        }
6958
72.6k
        else {
6959
72.6k
            SCN_UNLIKELY_ATTR
6960
72.6k
            handler.on_error("Missing '}' in format string");
6961
72.6k
            return begin;
6962
72.6k
        }
6963
16.3M
    }
6964
16.1M
    return begin + 1;
6965
16.3M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
6902
8.44M
{
6903
8.44M
    struct id_adapter {
6904
8.44M
        constexpr void operator()()
6905
8.44M
        {
6906
8.44M
            arg_id = handler.on_arg_id();
6907
8.44M
        }
6908
8.44M
        constexpr void operator()(std::size_t id)
6909
8.44M
        {
6910
8.44M
            arg_id = handler.on_arg_id(id);
6911
8.44M
        }
6912
6913
8.44M
        constexpr void on_error(const char* msg)
6914
8.44M
        {
6915
8.44M
            SCN_UNLIKELY_ATTR
6916
8.44M
            handler.on_error(msg);
6917
8.44M
        }
6918
6919
8.44M
        Handler& handler;
6920
8.44M
        std::size_t arg_id;
6921
8.44M
    };
6922
6923
8.44M
    ++begin;
6924
8.44M
    if (SCN_UNLIKELY(begin == end)) {
6925
0
        handler.on_error("Unexpected end of replacement field");
6926
0
        return begin;
6927
0
    }
6928
6929
8.44M
    if (*begin == CharT{'}'}) {
6930
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
0
    }
6932
8.44M
    else if (*begin == CharT{'{'}) {
6933
0
        handler.on_literal_text(begin, begin + 1);
6934
0
    }
6935
8.44M
    else {
6936
8.44M
        auto adapter = id_adapter{handler, 0};
6937
8.44M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
8.44M
        if (SCN_UNLIKELY(begin == end)) {
6940
0
            handler.on_error("Missing '}' in format string");
6941
0
            return begin;
6942
0
        }
6943
6944
8.44M
        if (*begin == CharT{'}'}) {
6945
0
            handler.on_replacement_field(adapter.arg_id, begin);
6946
0
        }
6947
8.44M
        else if (*begin == CharT{':'}) {
6948
8.44M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
0
                handler.on_error("Unexpected end of replacement field");
6950
0
                return begin;
6951
0
            }
6952
8.44M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
8.44M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
146k
                handler.on_error("Unknown format specifier");
6955
146k
                return begin;
6956
146k
            }
6957
8.44M
        }
6958
0
        else {
6959
0
            SCN_UNLIKELY_ATTR
6960
0
            handler.on_error("Missing '}' in format string");
6961
0
            return begin;
6962
0
        }
6963
8.44M
    }
6964
8.30M
    return begin + 1;
6965
8.44M
}
6966
6967
template <bool IsConstexpr, typename CharT, typename Handler>
6968
constexpr void parse_format_string_impl(std::basic_string_view<CharT> format,
6969
                                        Handler&& handler)
6970
31.9M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
31.9M
    auto begin = format.data();
6974
31.9M
    auto it = begin;
6975
31.9M
    const auto end = format.data() + format.size();
6976
6977
360M
    while (it != end) {
6978
330M
        const auto ch = *it++;
6979
330M
        if (ch == CharT{'{'}) {
6980
31.9M
            handler.on_literal_text(begin, it - 1);
6981
6982
31.9M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
31.9M
            if (!handler) {
6984
2.00M
                return;
6985
2.00M
            }
6986
31.9M
        }
6987
298M
        else if (ch == CharT{'}'}) {
6988
3.59k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
1.87k
                handler.on_error("Unmatched '}' in format string");
6990
1.87k
                return;
6991
1.87k
            }
6992
6993
1.71k
            handler.on_literal_text(begin, it);
6994
1.71k
            begin = ++it;
6995
1.71k
        }
6996
330M
    }
6997
6998
29.9M
    handler.on_literal_text(begin, end);
6999
29.9M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, char, scn::v3::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
6970
3.60M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
3.60M
    auto begin = format.data();
6974
3.60M
    auto it = begin;
6975
3.60M
    const auto end = format.data() + format.size();
6976
6977
7.03M
    while (it != end) {
6978
3.80M
        const auto ch = *it++;
6979
3.80M
        if (ch == CharT{'{'}) {
6980
3.60M
            handler.on_literal_text(begin, it - 1);
6981
6982
3.60M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
3.60M
            if (!handler) {
6984
377k
                return;
6985
377k
            }
6986
3.60M
        }
6987
204k
        else if (ch == CharT{'}'}) {
6988
2.74k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
1.39k
                handler.on_error("Unmatched '}' in format string");
6990
1.39k
                return;
6991
1.39k
            }
6992
6993
1.35k
            handler.on_literal_text(begin, it);
6994
1.35k
            begin = ++it;
6995
1.35k
        }
6996
3.80M
    }
6997
6998
3.22M
    handler.on_literal_text(begin, end);
6999
3.22M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, char, scn::v3::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
6970
3.50M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
3.50M
    auto begin = format.data();
6974
3.50M
    auto it = begin;
6975
3.50M
    const auto end = format.data() + format.size();
6976
6977
6.70M
    while (it != end) {
6978
3.50M
        const auto ch = *it++;
6979
3.50M
        if (ch == CharT{'{'}) {
6980
3.50M
            handler.on_literal_text(begin, it - 1);
6981
6982
3.50M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
3.50M
            if (!handler) {
6984
305k
                return;
6985
305k
            }
6986
3.50M
        }
6987
0
        else if (ch == CharT{'}'}) {
6988
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
0
                handler.on_error("Unmatched '}' in format string");
6990
0
                return;
6991
0
            }
6992
6993
0
            handler.on_literal_text(begin, it);
6994
0
            begin = ++it;
6995
0
        }
6996
3.50M
    }
6997
6998
3.19M
    handler.on_literal_text(begin, end);
6999
3.19M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
6970
16.4M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
16.4M
    auto begin = format.data();
6974
16.4M
    auto it = begin;
6975
16.4M
    const auto end = format.data() + format.size();
6976
6977
330M
    while (it != end) {
6978
314M
        const auto ch = *it++;
6979
314M
        if (ch == CharT{'{'}) {
6980
16.3M
            handler.on_literal_text(begin, it - 1);
6981
6982
16.3M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
16.3M
            if (!handler) {
6984
709k
                return;
6985
709k
            }
6986
16.3M
        }
6987
298M
        else if (ch == CharT{'}'}) {
6988
852
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
486
                handler.on_error("Unmatched '}' in format string");
6990
486
                return;
6991
486
            }
6992
6993
366
            handler.on_literal_text(begin, it);
6994
366
            begin = ++it;
6995
366
        }
6996
314M
    }
6997
6998
15.7M
    handler.on_literal_text(begin, end);
6999
15.7M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
6970
8.44M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
8.44M
    auto begin = format.data();
6974
8.44M
    auto it = begin;
6975
8.44M
    const auto end = format.data() + format.size();
6976
6977
16.2M
    while (it != end) {
6978
8.44M
        const auto ch = *it++;
6979
8.44M
        if (ch == CharT{'{'}) {
6980
8.44M
            handler.on_literal_text(begin, it - 1);
6981
6982
8.44M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
8.44M
            if (!handler) {
6984
610k
                return;
6985
610k
            }
6986
8.44M
        }
6987
0
        else if (ch == CharT{'}'}) {
6988
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
0
                handler.on_error("Unmatched '}' in format string");
6990
0
                return;
6991
0
            }
6992
6993
0
            handler.on_literal_text(begin, it);
6994
0
            begin = ++it;
6995
0
        }
6996
8.44M
    }
6997
6998
7.83M
    handler.on_literal_text(begin, end);
6999
7.83M
}
7000
7001
template <bool IsConstexpr, typename CharT, typename Handler>
7002
constexpr scan_error parse_format_string(std::basic_string_view<CharT> format,
7003
                                         Handler&& handler)
7004
31.9M
{
7005
31.9M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
31.9M
    handler.check_args_exhausted();
7007
31.9M
    return handler.get_error();
7008
31.9M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, char, scn::v3::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7004
3.60M
{
7005
3.60M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
3.60M
    handler.check_args_exhausted();
7007
3.60M
    return handler.get_error();
7008
3.60M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, char, scn::v3::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7004
3.50M
{
7005
3.50M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
3.50M
    handler.check_args_exhausted();
7007
3.50M
    return handler.get_error();
7008
3.50M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7004
16.4M
{
7005
16.4M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
16.4M
    handler.check_args_exhausted();
7007
16.4M
    return handler.get_error();
7008
16.4M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7004
8.44M
{
7005
8.44M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
8.44M
    handler.check_args_exhausted();
7007
8.44M
    return handler.get_error();
7008
8.44M
}
7009
7010
enum class arg_type_category {
7011
    none,
7012
    integer,
7013
    unsigned_integer,
7014
    floating,
7015
    string,
7016
    pointer,
7017
    boolean,
7018
    character,
7019
    custom
7020
};
7021
7022
constexpr arg_type_category get_category_for_arg_type(arg_type type)
7023
1.79M
{
7024
1.79M
    switch (type) {
7025
156
        case arg_type::none_type:
7026
156
            return arg_type_category::none;
7027
7028
121k
        case arg_type::schar_type:
7029
121k
        case arg_type::short_type:
7030
258k
        case arg_type::int_type:
7031
258k
        case arg_type::long_type:
7032
398k
        case arg_type::llong_type:
7033
398k
            return arg_type_category::integer;
7034
7035
109k
        case arg_type::uchar_type:
7036
109k
        case arg_type::ushort_type:
7037
229k
        case arg_type::uint_type:
7038
229k
        case arg_type::ulong_type:
7039
351k
        case arg_type::ullong_type:
7040
351k
            return arg_type_category::unsigned_integer;
7041
7042
52
        case arg_type::pointer_type:
7043
52
            return arg_type_category::pointer;
7044
52
        case arg_type::bool_type:
7045
52
            return arg_type_category::boolean;
7046
40
        case arg_type::narrow_character_type:
7047
52
        case arg_type::wide_character_type:
7048
52
        case arg_type::code_point_type:
7049
52
            return arg_type_category::character;
7050
7051
321k
        case arg_type::float_type:
7052
674k
        case arg_type::double_type:
7053
1.03M
        case arg_type::ldouble_type:
7054
1.03M
            return arg_type_category::floating;
7055
7056
1.56k
        case arg_type::narrow_string_view_type:
7057
4.67k
        case arg_type::narrow_string_type:
7058
7.74k
        case arg_type::wide_string_view_type:
7059
13.9k
        case arg_type::wide_string_type:
7060
13.9k
            return arg_type_category::string;
7061
7062
0
        case arg_type::custom_type:
7063
0
            return arg_type_category::custom;
7064
7065
0
            SCN_CLANG_PUSH
7066
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
7067
0
        default:
7068
0
            SCN_ENSURE(false);
7069
1.79M
            SCN_UNREACHABLE;
7070
1.79M
            SCN_CLANG_POP
7071
1.79M
    }
7072
7073
1.79M
    SCN_UNREACHABLE;
7074
1.79M
}
7075
7076
template <typename Handler>
7077
class specs_checker : public Handler {
7078
public:
7079
    template <typename H>
7080
    constexpr specs_checker(H&& handler, arg_type type)
7081
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7082
31.8M
    {
7083
31.8M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
31.8M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
3.58M
    {
7083
3.58M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
3.58M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
3.50M
    {
7083
3.50M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
3.50M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
16.2M
    {
7083
16.2M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
16.2M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
8.44M
    {
7083
8.44M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
8.44M
    }
7085
7086
    constexpr void on_localized()
7087
1.79M
    {
7088
1.79M
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
1.79M
        if (cat != arg_type_category::integer &&
7090
1.79M
            cat != arg_type_category::unsigned_integer &&
7091
1.79M
            cat != arg_type_category::floating &&
7092
1.79M
            cat != arg_type_category::boolean) {
7093
14.1k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
14.1k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
14.1k
        }
7098
7099
1.78M
        Handler::on_localized();
7100
1.78M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >::on_localized()
Line
Count
Source
7087
800k
    {
7088
800k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
800k
        if (cat != arg_type_category::integer &&
7090
800k
            cat != arg_type_category::unsigned_integer &&
7091
800k
            cat != arg_type_category::floating &&
7092
800k
            cat != arg_type_category::boolean) {
7093
3.30k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
3.30k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
3.30k
        }
7098
7099
796k
        Handler::on_localized();
7100
796k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >::on_localized()
Line
Count
Source
7087
809k
    {
7088
809k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
809k
        if (cat != arg_type_category::integer &&
7090
809k
            cat != arg_type_category::unsigned_integer &&
7091
809k
            cat != arg_type_category::floating &&
7092
809k
            cat != arg_type_category::boolean) {
7093
1.52k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
1.52k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
1.52k
        }
7098
7099
807k
        Handler::on_localized();
7100
807k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >::on_localized()
Line
Count
Source
7087
96.2k
    {
7088
96.2k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
96.2k
        if (cat != arg_type_category::integer &&
7090
96.2k
            cat != arg_type_category::unsigned_integer &&
7091
96.2k
            cat != arg_type_category::floating &&
7092
96.2k
            cat != arg_type_category::boolean) {
7093
6.27k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
6.27k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
6.27k
        }
7098
7099
90.0k
        Handler::on_localized();
7100
90.0k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >::on_localized()
Line
Count
Source
7087
92.9k
    {
7088
92.9k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
92.9k
        if (cat != arg_type_category::integer &&
7090
92.9k
            cat != arg_type_category::unsigned_integer &&
7091
92.9k
            cat != arg_type_category::floating &&
7092
92.9k
            cat != arg_type_category::boolean) {
7093
3.05k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
3.05k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
3.05k
        }
7098
7099
89.9k
        Handler::on_localized();
7100
89.9k
    }
7101
7102
private:
7103
    arg_type m_arg_type;
7104
};
7105
7106
template <typename Handler>
7107
constexpr void check_int_type_specs(const format_specs& specs,
7108
                                    Handler&& handler)
7109
3.97M
{
7110
3.97M
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7111
9.81k
        return handler.on_error("Invalid type specifier for integer type");
7112
9.81k
    }
7113
3.96M
    if (specs.localized) {
7114
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7115
            // clang-format off
7116
8
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7117
            // clang-format on
7118
8
            return;
7119
8
        }
7120
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7121
            // clang-format off
7122
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7123
            // clang-format on
7124
0
        }
7125
750k
    }
7126
3.96M
}
Unexecuted instantiation: void scn::v3::detail::check_int_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_int_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7109
3.97M
{
7110
3.97M
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7111
9.81k
        return handler.on_error("Invalid type specifier for integer type");
7112
9.81k
    }
7113
3.96M
    if (specs.localized) {
7114
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7115
            // clang-format off
7116
8
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7117
            // clang-format on
7118
8
            return;
7119
8
        }
7120
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7121
            // clang-format off
7122
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7123
            // clang-format on
7124
0
        }
7125
750k
    }
7126
3.96M
}
7127
7128
template <typename Handler>
7129
constexpr void check_char_type_specs(const format_specs& specs,
7130
                                     Handler&& handler)
7131
5.87k
{
7132
5.87k
    if (specs.type > presentation_type::int_hex ||
7133
5.87k
        specs.type == presentation_type::int_arbitrary_base) {
7134
4.89k
        SCN_UNLIKELY_ATTR
7135
4.89k
        return handler.on_error("Invalid type specifier for character type");
7136
4.89k
    }
7137
5.87k
}
Unexecuted instantiation: void scn::v3::detail::check_char_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_char_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7131
5.87k
{
7132
5.87k
    if (specs.type > presentation_type::int_hex ||
7133
5.87k
        specs.type == presentation_type::int_arbitrary_base) {
7134
4.89k
        SCN_UNLIKELY_ATTR
7135
4.89k
        return handler.on_error("Invalid type specifier for character type");
7136
4.89k
    }
7137
5.87k
}
7138
7139
template <typename Handler>
7140
constexpr void check_code_point_type_specs(const format_specs& specs,
7141
                                           Handler&& handler)
7142
0
{
7143
0
    if (specs.type != presentation_type::none &&
7144
0
        specs.type != presentation_type::character) {
7145
0
        SCN_UNLIKELY_ATTR
7146
0
        return handler.on_error("Invalid type specifier for code point type");
7147
0
    }
7148
0
}
7149
7150
template <typename Handler>
7151
constexpr void check_float_type_specs(const format_specs& specs,
7152
                                      Handler&& handler)
7153
3.71M
{
7154
3.71M
    if (specs.type != presentation_type::none &&
7155
3.71M
        (specs.type < presentation_type::float_hex ||
7156
2.67M
         specs.type > presentation_type::float_general)) {
7157
4.90k
        SCN_UNLIKELY_ATTR
7158
4.90k
        return handler.on_error("Invalid type specifier for float type");
7159
4.90k
    }
7160
3.71M
}
Unexecuted instantiation: void scn::v3::detail::check_float_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_float_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7153
3.71M
{
7154
3.71M
    if (specs.type != presentation_type::none &&
7155
3.71M
        (specs.type < presentation_type::float_hex ||
7156
2.67M
         specs.type > presentation_type::float_general)) {
7157
4.90k
        SCN_UNLIKELY_ATTR
7158
4.90k
        return handler.on_error("Invalid type specifier for float type");
7159
4.90k
    }
7160
3.71M
}
7161
7162
template <typename Handler>
7163
constexpr void check_string_type_specs(const format_specs& specs,
7164
                                       Handler&& handler)
7165
23.6M
{
7166
23.6M
    if (specs.type == presentation_type::none ||
7167
23.6M
        specs.type == presentation_type::string ||
7168
23.6M
        specs.type == presentation_type::string_set ||
7169
23.6M
        specs.type == presentation_type::regex ||
7170
23.6M
        specs.type == presentation_type::regex_escaped) {
7171
23.6M
        return;
7172
23.6M
    }
7173
14.3k
    if (specs.type == presentation_type::character) {
7174
13.8k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7175
            // clang-format off
7176
13.7k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7177
            // clang-format on
7178
13.7k
        }
7179
114
        return;
7180
13.8k
    }
7181
438
    SCN_UNLIKELY_ATTR
7182
438
    handler.on_error("Invalid type specifier for string");
7183
438
}
Unexecuted instantiation: void scn::v3::detail::check_string_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_string_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7165
23.6M
{
7166
23.6M
    if (specs.type == presentation_type::none ||
7167
23.6M
        specs.type == presentation_type::string ||
7168
23.6M
        specs.type == presentation_type::string_set ||
7169
23.6M
        specs.type == presentation_type::regex ||
7170
23.6M
        specs.type == presentation_type::regex_escaped) {
7171
23.6M
        return;
7172
23.6M
    }
7173
14.3k
    if (specs.type == presentation_type::character) {
7174
13.8k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7175
            // clang-format off
7176
13.7k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7177
            // clang-format on
7178
13.7k
        }
7179
114
        return;
7180
13.8k
    }
7181
438
    SCN_UNLIKELY_ATTR
7182
438
    handler.on_error("Invalid type specifier for string");
7183
438
}
7184
7185
template <typename Handler>
7186
constexpr void check_pointer_type_specs(const format_specs& specs,
7187
                                        Handler&& handler)
7188
5.87k
{
7189
5.87k
    if (specs.type != presentation_type::none &&
7190
5.87k
        specs.type != presentation_type::pointer) {
7191
4.95k
        SCN_UNLIKELY_ATTR
7192
4.95k
        return handler.on_error("Invalid type specifier for pointer");
7193
4.95k
    }
7194
5.87k
}
Unexecuted instantiation: void scn::v3::detail::check_pointer_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_pointer_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7188
5.87k
{
7189
5.87k
    if (specs.type != presentation_type::none &&
7190
5.87k
        specs.type != presentation_type::pointer) {
7191
4.95k
        SCN_UNLIKELY_ATTR
7192
4.95k
        return handler.on_error("Invalid type specifier for pointer");
7193
4.95k
    }
7194
5.87k
}
7195
7196
template <typename Handler>
7197
constexpr void check_bool_type_specs(const format_specs& specs,
7198
                                     Handler&& handler)
7199
5.91k
{
7200
5.91k
    if (specs.type != presentation_type::none &&
7201
5.91k
        specs.type != presentation_type::string &&
7202
5.91k
        specs.type != presentation_type::int_generic &&
7203
5.91k
        specs.type != presentation_type::int_hex &&
7204
5.91k
        specs.type != presentation_type::int_binary &&
7205
5.91k
        specs.type != presentation_type::int_unsigned_decimal &&
7206
5.91k
        specs.type != presentation_type::int_octal &&
7207
5.91k
        specs.type != presentation_type::int_decimal) {
7208
4.72k
        SCN_UNLIKELY_ATTR
7209
4.72k
        return handler.on_error("Invalid type specifier for boolean");
7210
4.72k
    }
7211
5.91k
}
Unexecuted instantiation: void scn::v3::detail::check_bool_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_bool_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7199
5.91k
{
7200
5.91k
    if (specs.type != presentation_type::none &&
7201
5.91k
        specs.type != presentation_type::string &&
7202
5.91k
        specs.type != presentation_type::int_generic &&
7203
5.91k
        specs.type != presentation_type::int_hex &&
7204
5.91k
        specs.type != presentation_type::int_binary &&
7205
5.91k
        specs.type != presentation_type::int_unsigned_decimal &&
7206
5.91k
        specs.type != presentation_type::int_octal &&
7207
5.91k
        specs.type != presentation_type::int_decimal) {
7208
4.72k
        SCN_UNLIKELY_ATTR
7209
4.72k
        return handler.on_error("Invalid type specifier for boolean");
7210
4.72k
    }
7211
5.91k
}
7212
7213
template <typename Handler>
7214
constexpr void check_regex_type_specs(const format_specs& specs,
7215
                                      Handler&& handler)
7216
0
{
7217
0
    if (SCN_UNLIKELY(specs.type == presentation_type::none ||
7218
0
                     specs.charset_string_size == 0)) {
7219
        // clang-format off
7220
0
        return handler.on_error("Regular expression needs to specified when reading regex_matches");
7221
        // clang-format on
7222
0
    }
7223
0
    if (specs.type == presentation_type::regex ||
7224
0
        specs.type == presentation_type::regex_escaped) {
7225
0
        return;
7226
0
    }
7227
0
    SCN_UNLIKELY_ATTR
7228
0
    handler.on_error("Invalid type specifier for regex_matches");
7229
0
}
Unexecuted instantiation: void scn::v3::detail::check_regex_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
Unexecuted instantiation: void scn::v3::detail::check_regex_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
7230
}  // namespace detail
7231
7232
/**
7233
 * \defgroup format-string Format strings
7234
 *
7235
 * \brief Format string description
7236
 *
7237
 * The format string syntax is heavily influenced by {fmt} and
7238
 * `std::format`, and is largely compatible with it. Scanning functions,
7239
 * such as `scn::scan` and
7240
 * `scn::input`, use the format string syntax described in this section.
7241
 *
7242
 * Format strings consist of:
7243
 *
7244
 *  * Replacement fields, which are surrounded by curly braces `{}`.
7245
 *
7246
 *  * Non-whitespace characters (except `{}`; for literal braces, use
7247
 *    `{{` and `}}`), which consume exactly one identical character from the
7248
 *    input
7249
 *
7250
 *  * Whitespace characters, which consume any and all available consecutive
7251
 *    whitespace from the input.
7252
 *
7253
 * Literal characters are matched by code point one-to-one, with no
7254
 * normalization being done.
7255
 * `Ä` (U+00C4, UTF-8 0xc3 0x84) only matches another U+00C4, and not, for
7256
 * example, U+00A8 (DIAERESIS) and U+0041 (LATIN CAPITAL LETTER A).
7257
 *
7258
 * Characters (code points) are considered to be whitespace characters by
7259
 * the Unicode Pattern_White_Space property, as defined by UAX31-R3a.
7260
 * These code points are:
7261
 *
7262
 *  * ASCII whitespace characters ("\t\n\v\f\r ")
7263
 *  * U+0085 (next line)
7264
 *  * U+200E and U+200F (LEFT-TO-RIGHT MARK and RIGHT-TO-LEFT MARK)
7265
 *  * U+2028 and U+2029 (LINE SEPARATOR and PARAGRAPH SEPARATOR)
7266
 *
7267
 * The grammar for a replacement field is as follows:
7268
 *
7269
 * \code
7270
 * replacement-field   ::= '{' [arg-id] [':' format-spec] '}'
7271
 * arg-id              ::= positive-integer
7272
 *
7273
 * format-spec         ::= [fill-and-align]
7274
 *                         [width] [precision]
7275
 *                         ['L'] [type]
7276
 * fill-and-align      ::= [fill] align
7277
 * fill                ::= any character other than
7278
 *                         '{' or '}'
7279
 * align               ::= one of '<' '>' '^'
7280
 * width               ::= positive-integer
7281
 * precision           ::= '.' nonnegative-integer
7282
 * type                ::= 'a' | 'A' | 'b' | 'B' | 'c' | 'd' |
7283
 *                         'e' | 'E' | 'f' | 'F' | 'g' | 'G' |
7284
 *                         'o' | 'p' | 's' | 'x' | 'X' | 'i' | 'u'
7285
 * \endcode
7286
 *
7287
 * \section arg-ids Argument IDs
7288
 *
7289
 * The `arg-id` specifier can be used to index arguments manually.
7290
 * If manual indexing is used, all of the indices in a format string must be
7291
 * stated explicitly. The same `arg-id` can appear in the format string
7292
 * only once, and must refer to a valid argument.
7293
 *
7294
 * \code{.cpp}
7295
 * // Format string equivalent to "{0} to {1}"
7296
 * auto a = scn::scan<int, int>("2 to 300", "{} to {}");
7297
 * // a->values() == (2, 300)
7298
 *
7299
 * // Manual indexing
7300
 * auto b = scn::scan<int, int>("2 to 300", "{1} to {0}");
7301
 * // b->values() == (3, 200)
7302
 *
7303
 * // INVALID:
7304
 * // Automatic and manual indexing is mixed
7305
 * auto c = scn::scan<int, int>("2 to 300", "{} to {0}");
7306
 *
7307
 * // INVALID:
7308
 * // Same argument is referred to multiple times
7309
 * auto d = scn::scan<int, int>("2 to 300", "{0} to {0}");
7310
 *
7311
 * // INVALID:
7312
 * // {2} does not refer to an argument
7313
 * auto e = scn::scan<int, int>("2 to 300", "{0} to {2}");
7314
 * \endcode
7315
 *
7316
 * \section fill-and-align Fill and align
7317
 *
7318
 * Alignment allows for skipping character before and/or after a value.
7319
 * There are three possible values for alignment:
7320
 *
7321
 * <table>
7322
 * <caption id="align-table">
7323
 * Alignment options
7324
 * </caption>
7325
 *
7326
 * <tr><th>Option</th> <th>Meaning</th></tr>
7327
 *
7328
 * <tr>
7329
 * <td>`<`</td>
7330
 * <td>
7331
 * Align the value to the left (skips fill characters after the value)
7332
 * </td>
7333
 * </tr>
7334
 *
7335
 * <tr>
7336
 * <td>`>`</td>
7337
 * <td>
7338
 * Align the value to the right (skips fill characters before the value)
7339
 * </td>
7340
 * </tr>
7341
 *
7342
 * <tr>
7343
 * <td>`^`</td>
7344
 * <td>
7345
 * Align the value to the center
7346
 * (skips fill characters both before and after the value)
7347
 * </td>
7348
 * </tr>
7349
 * </table>
7350
 *
7351
 * The fill character can be any Unicode code point, except for `{` and `}`.
7352
 * The default fill is any whitespace character, as specified above.
7353
 *
7354
 * For format type specifiers other than `c` (default for `char` and `wchar_t`,
7355
 * available for `string` and `string_view`), `[...]`, and the regex `/.../`,
7356
 * the default alignment is `>`.
7357
 * In practice, this means that leading whitespace is skipped by default.
7358
 * For the `c` format type specifier, there's no default alignment,
7359
 * and no fill characters are skipped, including whitespace.
7360
 *
7361
 * The number of fill characters consumed can be controlled with the width and
7362
 * precision specifiers.
7363
 *
7364
 * \section width Width
7365
 *
7366
 * Width specifies the minimum number of characters that will be read from
7367
 * the source range. It can be any unsigned integer. Any fill characters skipped
7368
 * are included in the width.
7369
 *
7370
 * For the purposes of width calculation, the same algorithm is used that in
7371
 * {fmt}. Every code point has a width of one, except the following ones
7372
 * have a width of 2:
7373
 *
7374
 * * any code point with the East_Asian_Width="W" or East_Asian_Width="F"
7375
 *   Derived Extracted Property as described by UAX#44
7376
 * * U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
7377
 * * U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
7378
 * * U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
7379
 *
7380
 * \section precision Precision
7381
 *
7382
 * Precision specifies the maximum number of characters that will be read from
7383
 * the source range. The method for counting characters is the same as above,
7384
 * with the width field.
7385
 *
7386
 * \section localized Localized
7387
 *
7388
 * The `L` flag enables localized scanning.
7389
 * Its effects are different for each type it is used with:
7390
 *
7391
 *  * For integers, it enables locale-specific thousands separators
7392
 *  * For floating-point numbers, it enables locale-specific thousands and
7393
 *    radix (decimal) separators
7394
 *  * For booleans, it enables locale-specific textual representations (for
7395
 *    `true` and `false`)
7396
 *  * For other types, it has no effect
7397
 *
7398
 * \section type Type specifier
7399
 *
7400
 * The type specifier determines how the data is to be scanned.
7401
 * The type of the argument to be scanned determines what flags are valid.
7402
 *
7403
 * \subsection type-string Type specifier: strings
7404
 *
7405
 * <table>
7406
 * <caption id="type-string-table">
7407
 * String types (`std::basic_string` and `std::basic_string_view`)
7408
 * </caption>
7409
 * <tr><th>Type</th> <th>Meaning</th></tr>
7410
 * <tr>
7411
 * <td>none, `s`</td>
7412
 * <td>
7413
 * Copies from the input until a whitespace character is encountered, or,
7414
 * if using the `<` (left) or `^` (center) alignment,
7415
 * a fill character is encountered.
7416
 * </td>
7417
 * </tr>
7418
 * <tr>
7419
 * <td>`c`</td>
7420
 * <td>
7421
 * Copies from the input until the field width is exhausted.
7422
 * Has no default alignment
7423
 * (doesn't skip preceding whitespace, if no alignment is specified).
7424
 * Errors if no field precision is provided.
7425
 * </td>
7426
 * </tr>
7427
 * <tr>
7428
 * <td>`[...]`</td>
7429
 * <td>
7430
 * Character set matching: copies from the input until a character not specified
7431
 * in the set is encountered. Character ranges can be specified with `-`, and
7432
 * the entire selection can be inverted with a prefix `^`. Matches and supports
7433
 * arbitrary Unicode code points.
7434
 * Has no default alignment
7435
 * (doesn't skip preceding whitespace, if no alignment is specified).
7436
 * </td>
7437
 * </tr>
7438
 * <tr>
7439
 * <td>`/<regex>/<flags>`</td>
7440
 * <td>
7441
 * Regular expression matching: copies from the input until the input does not
7442
 * match the regex.
7443
 * Has no default alignment
7444
 * (doesn't skip preceding whitespace, if no alignment is specified).
7445
 * \see regex
7446
 * </td>
7447
 * </tr>
7448
 * </table>
7449
 *
7450
 * \note `std::basic_string_view` can only be scanned if the source is
7451
 * contiguous.
7452
 *
7453
 * \subsection type-int Type specifier: integers
7454
 *
7455
 * Integer values are scanned as if by using `std::from_chars`,
7456
 * except a positive `+` sign and a base prefix (like `0x`) are always
7457
 * allowed to be present.
7458
 *
7459
 * <table>
7460
 * <caption id="type-int-table">
7461
 * Integer types (`signed` and `unsigned` variants of `char`, `short`,
7462
 * `int`, `long`, and `long long`)
7463
 * </caption>
7464
 * <tr><th>Type</th> <th>Meaning</th></tr>
7465
 * <tr>
7466
 * <td>`b`, `B`</td>
7467
 * <td>
7468
 * `std::from_chars` with base `2`. The base prefix is `0b` or `0B`.
7469
 * </td>
7470
 * </tr>
7471
 * <tr>
7472
 * <td>`o`, `O`</td>
7473
 * <td>
7474
 * `std::from_chars` with base `8`. The base prefix is `0o` or `0O`, or just
7475
 * `0`.
7476
 * </td>
7477
 * </tr>
7478
 * <tr>
7479
 * <td>`x`, `X`</td>
7480
 * <td>
7481
 * `std::from_chars` with base `16`. The base prefix is `0x` or `0X`.
7482
 * </td>
7483
 * </tr>
7484
 * <tr>
7485
 * <td>`d`</td>
7486
 * <td>
7487
 * `std::from_chars` with base `10`. No base prefix allowed.
7488
 * </td>
7489
 * </tr>
7490
 * <tr>
7491
 * <td>`u`</td>
7492
 * <td>
7493
 * `std::from_chars` with base `10`. No base prefix or `-` sign allowed.
7494
 * </td>
7495
 * </tr>
7496
 * <tr>
7497
 * <td>`i`</td>
7498
 * <td>
7499
 * Detect the base from a possible prefix, defaulting to decimal (base-10).
7500
 * </td>
7501
 * </tr>
7502
 * <tr>
7503
 * <td>`rXX` (where XX = [2, 36])</td>
7504
 * <td>
7505
 * Custom base, without a base prefix (r stands for radix).
7506
 * </td>
7507
 * </tr>
7508
 * <tr>
7509
 * <td>`c`</td>
7510
 * <td>
7511
 * Copies a character (code unit) from the input.
7512
 * </td>
7513
 * </tr>
7514
 * <tr>
7515
 * <td>none</td>
7516
 * <td>
7517
 * Same as `d`.
7518
 * </td>
7519
 * </tr>
7520
 * </table>
7521
 *
7522
 * \subsection type-char Type specifier: characters
7523
 *
7524
 * <table>
7525
 * <caption id="type-char-table">
7526
 * Character types (`char` and `wchar_t`), and code points (`char32_t`)
7527
 * </caption>
7528
 * <tr><th>Type</th> <th>Meaning</th></tr>
7529
 * <tr>
7530
 * <td>none, `c`</td>
7531
 * <td>
7532
 * Copies a character (code point for `char32_t`, code unit otherwise) from the
7533
 * input.
7534
 * </td>
7535
 * </tr>
7536
 * <tr>
7537
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
7538
 * <td>
7539
 * Same as for integers, see above \ref type-int. Not allowed for `char32_t`.
7540
 * </td>
7541
 * </tr>
7542
 * </table>
7543
 *
7544
 * \note When scanning characters (`char` and `wchar_t`), the source range is
7545
 * read a single code unit at a time, and encoding is not respected.
7546
 *
7547
 * \subsection type-float Type specifier: floating-point values
7548
 *
7549
 * Floating-point values are scanned as if by using `std::from_chars`,
7550
 * except a positive `+` sign and a base prefix (like `0x`) are always
7551
 * allowed to be present.
7552
 *
7553
 * <table>
7554
 * <caption id="type-float-table">
7555
 * Floating-point types (`float`, `double`, and `long double`)
7556
 * </caption>
7557
 * <tr><th>Type</th> <th>Meaning</th></tr>
7558
 * <tr>
7559
 * <td>`a`, `A`</td>
7560
 * <td>
7561
 * `std::from_chars` with `std::chars_format::hex`.
7562
 * Prefix `0x`/`0X` is allowed.
7563
 * </td>
7564
 * </tr>
7565
 * <tr>
7566
 * <td>`e`, `E`</td>
7567
 * <td>
7568
 * `std::from_chars` with `std::chars_format::scientific`.
7569
 * </td>
7570
 * </tr>
7571
 * <tr>
7572
 * <td>`f`, `F`</td>
7573
 * <td>
7574
 * `std::from_chars` with `std::chars_format::fixed`.
7575
 * </td>
7576
 * </tr>
7577
 * <tr>
7578
 * <td>`g`, `G`</td>
7579
 * <td>
7580
 * `std::from_chars` with `std::chars_format::general`.
7581
 * </td>
7582
 * </tr>
7583
 * <tr>
7584
 * <td>none</td>
7585
 * <td>
7586
 * `std::from_chars` with `std::chars_format::general | std::chars_format::hex`.
7587
 * Prefix `0x`/`0X` is allowed.
7588
 * </td>
7589
 * </tr>
7590
 * </table>
7591
 *
7592
 * \subsection type-bool Type specifier: booleans
7593
 *
7594
 * <table>
7595
 * <caption id="type-bool-table">
7596
 * `bool`
7597
 * </caption>
7598
 * <tr><th>Type</th> <th>Meaning</th></tr>
7599
 * <tr>
7600
 * <td>`s`</td>
7601
 * <td>
7602
 * Allows for the textual representation (`true` or `false`).
7603
 * </td>
7604
 * </tr>
7605
 * <tr>
7606
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
7607
 * <td>
7608
 * Allows for the integral/numeric representation (`0` or `1`).
7609
 * </td>
7610
 * </tr>
7611
 * <tr>
7612
 * <td>none</td>
7613
 * <td>
7614
 * Allows for both the textual and the integral/numeric representation.
7615
 * </td>
7616
 * </tr>
7617
 * </table>
7618
 */
7619
7620
namespace detail {
7621
/**
7622
 * A runtime format string
7623
 *
7624
 * \ingroup format-string
7625
 */
7626
template <typename CharT>
7627
struct basic_runtime_format_string {
7628
57.3M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v3::detail::basic_runtime_format_string<char>::basic_runtime_format_string(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7628
8.84M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v3::detail::basic_runtime_format_string<wchar_t>::basic_runtime_format_string(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7628
48.4M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
7629
7630
    basic_runtime_format_string(const basic_runtime_format_string&) = delete;
7631
    basic_runtime_format_string(basic_runtime_format_string&&) = delete;
7632
    basic_runtime_format_string& operator=(const basic_runtime_format_string&) =
7633
        delete;
7634
    basic_runtime_format_string& operator=(basic_runtime_format_string&&) =
7635
        delete;
7636
    ~basic_runtime_format_string() = default;
7637
7638
    std::basic_string_view<CharT> str;
7639
};
7640
}  // namespace detail
7641
7642
/**
7643
 * Create a runtime format string
7644
 *
7645
 * Can be used to avoid compile-time format string checking
7646
 *
7647
 * \ingroup format-string
7648
 */
7649
inline detail::basic_runtime_format_string<char> runtime_format(
7650
    std::string_view s)
7651
8.84M
{
7652
8.84M
    return s;
7653
8.84M
}
7654
inline detail::basic_runtime_format_string<wchar_t> runtime_format(
7655
    std::wstring_view s)
7656
48.4M
{
7657
48.4M
    return s;
7658
48.4M
}
7659
7660
namespace detail {
7661
struct compile_string {};
7662
7663
template <typename Str>
7664
inline constexpr bool is_compile_string_v =
7665
    std::is_base_of_v<compile_string, Str>;
7666
7667
template <typename Scanner, typename = void>
7668
inline constexpr bool scanner_has_format_specs_member_v = false;
7669
template <typename Scanner>
7670
inline constexpr bool scanner_has_format_specs_member_v<
7671
    Scanner,
7672
    std::void_t<decltype(SCN_DECLVAL(Scanner&)._format_specs())>> = true;
7673
7674
template <typename T, typename Source, typename Ctx, typename ParseCtx>
7675
constexpr typename ParseCtx::iterator parse_format_specs(ParseCtx& parse_ctx)
7676
{
7677
    using char_type = typename ParseCtx::char_type;
7678
    using mapped_type = std::conditional_t<
7679
        mapped_type_constant<T, char_type>::value != arg_type::custom_type,
7680
        std::remove_reference_t<decltype(arg_mapper<char_type>().map(
7681
            SCN_DECLVAL(T&)))>,
7682
        T>;
7683
    auto s = typename Ctx::template scanner_type<mapped_type>{};
7684
    auto it = s.parse(parse_ctx)
7685
                  .transform_error([&](scan_error err) constexpr {
7686
                      parse_ctx.on_error(err.msg());
7687
                      return err;
7688
                  })
7689
                  .value_or(parse_ctx.end());
7690
    if constexpr (scanner_has_format_specs_member_v<decltype(s)>) {
7691
        auto& specs = s._format_specs();
7692
        if ((specs.type == presentation_type::regex ||
7693
             specs.type == presentation_type::regex_escaped) &&
7694
            !(ranges::range<Source> && ranges::contiguous_range<Source>)) {
7695
            // clang-format off
7696
            parse_ctx.on_error("Cannot read a regex from a non-contiguous source");
7697
            // clang-format on
7698
        }
7699
    }
7700
    return it;
7701
}
7702
7703
template <typename CharT, typename Source, typename... Args>
7704
class format_string_checker {
7705
public:
7706
    using parse_context_type = compile_parse_context<CharT>;
7707
    static constexpr auto num_args = sizeof...(Args);
7708
7709
    explicit constexpr format_string_checker(
7710
        std::basic_string_view<CharT> format_str)
7711
        : m_parse_context(format_str,
7712
                          num_args,
7713
                          m_types,
7714
                          type_identity<Source>{}),
7715
          m_parse_funcs{&parse_format_specs<Args,
7716
                                            Source,
7717
                                            basic_scan_context<CharT>,
7718
                                            parse_context_type>...},
7719
          m_types{arg_type_constant<Args, CharT>::value...}
7720
    {
7721
    }
7722
7723
    constexpr void on_literal_text(const CharT* begin, const CharT* end) const
7724
    {
7725
        // TODO: Do we want to validate Unicode in format strings?
7726
        // We're dealing with text, so we probably do.
7727
        // We could do codeunit-to-codeunit matching,
7728
        // but that could get messy wrt. whitespace matching.
7729
        // It's simpler to not allow nonsense.
7730
        while (begin != end) {
7731
            const auto len = code_point_length_by_starting_code_unit(*begin);
7732
            if (SCN_UNLIKELY(len == 0 ||
7733
                             static_cast<size_t>(end - begin) < len)) {
7734
                return on_error("Invalid encoding in format string");
7735
            }
7736
7737
            const auto cp = decode_code_point_exhaustive(
7738
                std::basic_string_view<CharT>{begin, len});
7739
            if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7740
                return on_error("Invalid encoding in format string");
7741
            }
7742
7743
            begin += len;
7744
        }
7745
    }
7746
7747
    constexpr auto on_arg_id()
7748
    {
7749
        return m_parse_context.next_arg_id();
7750
    }
7751
    constexpr auto on_arg_id(std::size_t id)
7752
    {
7753
        m_parse_context.check_arg_id(id);
7754
        return id;
7755
    }
7756
7757
    constexpr void on_replacement_field(size_t id, const CharT*)
7758
    {
7759
        m_parse_context.check_arg_can_be_read(id);
7760
        set_arg_as_read(id);
7761
7762
        if (m_types[id] == arg_type::narrow_regex_matches_type ||
7763
            m_types[id] == arg_type::wide_regex_matches_type) {
7764
            // clang-format off
7765
            return on_error("Regular expression needs to be specified when reading regex_matches");
7766
            // clang-format on
7767
        }
7768
    }
7769
7770
    constexpr const CharT* on_format_specs(std::size_t id,
7771
                                           const CharT* begin,
7772
                                           const CharT*)
7773
    {
7774
        m_parse_context.check_arg_can_be_read(id);
7775
        set_arg_as_read(id);
7776
        m_parse_context.advance_to(begin);
7777
        return id < num_args ? m_parse_funcs[id](m_parse_context) : begin;
7778
    }
7779
7780
    constexpr void check_args_exhausted() const
7781
    {
7782
        if (num_args == 0) {
7783
            return;
7784
        }
7785
        for (auto is_set : m_visited_args) {
7786
            if (!is_set) {
7787
                return on_error("Argument list not exhausted");
7788
            }
7789
        }
7790
    }
7791
7792
    void on_error(const char* msg) const
7793
    {
7794
        SCN_UNLIKELY_ATTR
7795
        m_parse_context.on_error(msg);
7796
    }
7797
7798
    // Only to satisfy the concept and eliminate compiler errors,
7799
    // because errors are reported by failing to compile on_error above
7800
    // (it's not constexpr)
7801
    constexpr explicit operator bool() const
7802
    {
7803
        return true;
7804
    }
7805
    constexpr scan_error get_error() const
7806
    {
7807
        return {};
7808
    }
7809
7810
private:
7811
    constexpr void set_arg_as_read(size_t id)
7812
    {
7813
        if (id >= num_args) {
7814
            return on_error("Invalid out-of-range argument ID");
7815
        }
7816
        if (m_visited_args[id]) {
7817
            return on_error("Argument with this ID already scanned");
7818
        }
7819
        m_visited_args[id] = true;
7820
    }
7821
7822
    using parse_func = const CharT* (*)(parse_context_type&);
7823
7824
    parse_context_type m_parse_context;
7825
    parse_func m_parse_funcs[num_args > 0 ? num_args : 1];
7826
    arg_type m_types[num_args > 0 ? num_args : 1];
7827
    bool m_visited_args[num_args > 0 ? num_args : 1] = {false};
7828
};
7829
7830
template <typename Source, typename... Args, typename Str>
7831
auto check_format_string(const Str&)
7832
    -> std::enable_if_t<!is_compile_string_v<Str>>
7833
{
7834
    // TODO: SCN_ENFORE_COMPILE_STRING?
7835
#if 0  // SCN_ENFORE_COMPILE_STRING
7836
    static_assert(dependent_false<Str>::value,
7837
              "SCN_ENFORCE_COMPILE_STRING requires all format "
7838
              "strings to use SCN_STRING.");
7839
#endif
7840
}
7841
7842
template <typename Source, typename... Args, typename Str>
7843
auto check_format_string(Str format_str)
7844
    -> std::enable_if_t<is_compile_string_v<Str>>
7845
{
7846
    using char_type = typename Str::char_type;
7847
7848
    SCN_GCC_PUSH
7849
    SCN_GCC_IGNORE("-Wconversion")
7850
    constexpr auto s = std::basic_string_view<char_type>{format_str};
7851
    SCN_GCC_POP
7852
7853
    using checker = format_string_checker<char_type, Source, Args...>;
7854
    constexpr bool invalid_format =
7855
        (parse_format_string<true>(s, checker(s)), true);
7856
    SCN_UNUSED(invalid_format);
7857
}
7858
7859
template <typename CharT, std::size_t N>
7860
constexpr std::basic_string_view<CharT> compile_string_to_view(
7861
    const CharT (&s)[N])
7862
{
7863
    return {s, N - 1};
7864
}
7865
template <typename CharT>
7866
constexpr std::basic_string_view<CharT> compile_string_to_view(
7867
    std::basic_string_view<CharT> s)
7868
{
7869
    return s;
7870
}
7871
}  // namespace detail
7872
7873
#define SCN_STRING_IMPL(s, base, expl)                                       \
7874
    [] {                                                                     \
7875
        struct SCN_COMPILE_STRING : base {                                   \
7876
            using char_type = ::scn::detail::remove_cvref_t<decltype(s[0])>; \
7877
            SCN_MAYBE_UNUSED constexpr expl                                  \
7878
            operator ::std::basic_string_view<char_type>() const             \
7879
            {                                                                \
7880
                return ::scn::detail::compile_string_to_view<char_type>(s);  \
7881
            }                                                                \
7882
        };                                                                   \
7883
        return SCN_COMPILE_STRING{};                                         \
7884
    }()
7885
7886
#define SCN_STRING(s) SCN_STRING_IMPL(s, ::scn::detail::compile_string, )
7887
7888
/**
7889
 * Compile-time format string
7890
 *
7891
 * \ingroup format-string
7892
 */
7893
template <typename CharT, typename Source, typename... Args>
7894
class basic_scan_format_string {
7895
public:
7896
    SCN_CLANG_PUSH
7897
#if SCN_CLANG >= SCN_COMPILER(10, 0, 0)
7898
    SCN_CLANG_IGNORE("-Wc++20-compat")  // false positive about consteval
7899
#endif
7900
    template <
7901
        typename S,
7902
        std::enable_if_t<
7903
            std::is_convertible_v<const S&, std::basic_string_view<CharT>> &&
7904
            detail::is_not_self<S, basic_scan_format_string>>* = nullptr>
7905
    SCN_CONSTEVAL basic_scan_format_string(const S& s) : m_str(s)
7906
    {
7907
#if SCN_HAS_CONSTEVAL
7908
        using checker = detail::format_string_checker<CharT, Source, Args...>;
7909
        const auto e = detail::parse_format_string<true>(m_str, checker(s));
7910
        SCN_UNUSED(e);
7911
#else
7912
        detail::check_format_string<Source, Args...>(s);
7913
#endif
7914
    }
7915
    SCN_CLANG_POP
7916
7917
    template <
7918
        typename OtherSource,
7919
        std::enable_if_t<std::is_same_v<detail::remove_cvref_t<Source>,
7920
                                        detail::remove_cvref_t<OtherSource>> &&
7921
                         ranges::borrowed_range<Source> ==
7922
                             ranges::borrowed_range<OtherSource>>* = nullptr>
7923
    constexpr basic_scan_format_string(
7924
        const basic_scan_format_string<CharT, OtherSource, Args...>& other)
7925
        : m_str(other.get())
7926
    {
7927
    }
7928
7929
    basic_scan_format_string(detail::basic_runtime_format_string<CharT> r)
7930
        : m_str(r.str)
7931
57.3M
    {
7932
57.3M
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
8.03k
    {
7932
8.03k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
16.0k
    {
7932
16.0k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
311k
    {
7932
311k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
300k
    {
7932
300k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
393k
    {
7932
393k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
339k
    {
7932
339k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
400k
    {
7932
400k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
343k
    {
7932
343k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
313k
    {
7932
313k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
302k
    {
7932
302k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
394k
    {
7932
394k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
341k
    {
7932
341k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
401k
    {
7932
401k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
345k
    {
7932
345k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.6k
    {
7932
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.6k
    {
7932
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
130k
    {
7932
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
130k
    {
7932
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
131k
    {
7932
131k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
15.6M
    {
7932
15.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
15.6M
    {
7932
15.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
15.6M
    {
7932
15.6M
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
661k
    {
7932
661k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
714k
    {
7932
714k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
723k
    {
7932
723k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
661k
    {
7932
661k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
714k
    {
7932
714k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
723k
    {
7932
723k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
82.9k
    {
7932
82.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
83.0k
    {
7932
83.0k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
83.1k
    {
7932
83.1k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
82.9k
    {
7932
82.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
83.0k
    {
7932
83.0k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
83.1k
    {
7932
83.1k
    }
7933
7934
    constexpr operator std::basic_string_view<CharT>() const
7935
57.3M
    {
7936
57.3M
        return m_str;
7937
57.3M
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
8.03k
    {
7936
8.03k
        return m_str;
7937
8.03k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
16.0k
    {
7936
16.0k
        return m_str;
7937
16.0k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
311k
    {
7936
311k
        return m_str;
7937
311k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
300k
    {
7936
300k
        return m_str;
7937
300k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
393k
    {
7936
393k
        return m_str;
7937
393k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
339k
    {
7936
339k
        return m_str;
7937
339k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
400k
    {
7936
400k
        return m_str;
7937
400k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
343k
    {
7936
343k
        return m_str;
7937
343k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
313k
    {
7936
313k
        return m_str;
7937
313k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
302k
    {
7936
302k
        return m_str;
7937
302k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
394k
    {
7936
394k
        return m_str;
7937
394k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
341k
    {
7936
341k
        return m_str;
7937
341k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
401k
    {
7936
401k
        return m_str;
7937
401k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
345k
    {
7936
345k
        return m_str;
7937
345k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.6k
    {
7936
78.6k
        return m_str;
7937
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.6k
    {
7936
78.6k
        return m_str;
7937
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
130k
    {
7936
130k
        return m_str;
7937
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
130k
    {
7936
130k
        return m_str;
7937
130k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
131k
    {
7936
131k
        return m_str;
7937
131k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
15.6M
    {
7936
15.6M
        return m_str;
7937
15.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
15.6M
    {
7936
15.6M
        return m_str;
7937
15.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
15.6M
    {
7936
15.6M
        return m_str;
7937
15.6M
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
661k
    {
7936
661k
        return m_str;
7937
661k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
714k
    {
7936
714k
        return m_str;
7937
714k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
723k
    {
7936
723k
        return m_str;
7937
723k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
661k
    {
7936
661k
        return m_str;
7937
661k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
714k
    {
7936
714k
        return m_str;
7937
714k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
723k
    {
7936
723k
        return m_str;
7937
723k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
82.9k
    {
7936
82.9k
        return m_str;
7937
82.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
83.0k
    {
7936
83.0k
        return m_str;
7937
83.0k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
83.1k
    {
7936
83.1k
        return m_str;
7937
83.1k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
82.9k
    {
7936
82.9k
        return m_str;
7937
82.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
83.0k
    {
7936
83.0k
        return m_str;
7937
83.0k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
83.1k
    {
7936
83.1k
        return m_str;
7937
83.1k
    }
7938
    constexpr std::basic_string_view<CharT> get() const
7939
    {
7940
        return m_str;
7941
    }
7942
7943
private:
7944
    std::basic_string_view<CharT> m_str;
7945
};
7946
7947
namespace detail {
7948
class locale_ref {
7949
#if !SCN_DISABLE_LOCALE
7950
public:
7951
70.8M
    constexpr locale_ref() = default;
7952
7953
    template <typename Locale>
7954
    explicit locale_ref(const Locale& loc);
7955
7956
    constexpr explicit operator bool() const noexcept
7957
0
    {
7958
0
        return m_locale != nullptr;
7959
0
    }
7960
7961
    template <typename Locale>
7962
    Locale get() const;
7963
7964
private:
7965
    const void* m_locale{nullptr};
7966
#else
7967
public:
7968
    constexpr locale_ref() = default;
7969
7970
    template <typename T>
7971
    constexpr explicit locale_ref(T&&)
7972
    {
7973
    }
7974
7975
    constexpr explicit operator bool() const noexcept
7976
    {
7977
        return true;
7978
    }
7979
#endif
7980
};
7981
}  // namespace detail
7982
7983
/////////////////////////////////////////////////////////////////
7984
// scan_context
7985
/////////////////////////////////////////////////////////////////
7986
7987
namespace detail {
7988
template <typename I>
7989
using apply_cmp_with_nullptr = decltype(SCN_DECLVAL(const I&) == nullptr);
7990
template <typename I>
7991
inline constexpr bool is_comparable_with_nullptr =
7992
    mp_valid_v<apply_cmp_with_nullptr, I>;
7993
7994
template <typename Args>
7995
class scan_context_base {
7996
public:
7997
    /// Get argument at index `id`
7998
    constexpr auto arg(size_t id) const noexcept
7999
31.8M
    {
8000
31.8M
        return m_args.get(id);
8001
31.8M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::arg(unsigned long) const
Line
Count
Source
7999
7.09M
    {
8000
7.09M
        return m_args.get(id);
8001
7.09M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::arg(unsigned long) const
Line
Count
Source
7999
24.7M
    {
8000
24.7M
        return m_args.get(id);
8001
24.7M
    }
8002
8003
    constexpr const Args& args() const
8004
11.6k
    {
8005
11.6k
        return m_args;
8006
11.6k
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::args() const
Line
Count
Source
8004
6.22k
    {
8005
6.22k
        return m_args;
8006
6.22k
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::args() const
Line
Count
Source
8004
5.47k
    {
8005
5.47k
        return m_args;
8006
5.47k
    }
8007
8008
    SCN_NODISCARD constexpr locale_ref locale() const
8009
31.3M
    {
8010
31.3M
        return m_locale;
8011
31.3M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::locale() const
Line
Count
Source
8009
6.94M
    {
8010
6.94M
        return m_locale;
8011
6.94M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::locale() const
Line
Count
Source
8009
24.4M
    {
8010
24.4M
        return m_locale;
8011
24.4M
    }
8012
8013
protected:
8014
    scan_context_base(Args args, locale_ref loc)
8015
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8016
31.9M
    {
8017
31.9M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::scan_context_base(scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >, scn::v3::detail::locale_ref)
Line
Count
Source
8016
7.10M
    {
8017
7.10M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::scan_context_base(scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >, scn::v3::detail::locale_ref)
Line
Count
Source
8016
24.8M
    {
8017
24.8M
    }
8018
8019
    Args m_args;
8020
    locale_ref m_locale;
8021
};
8022
}  // namespace detail
8023
8024
/**
8025
 * \defgroup ctx Contexts and scanners
8026
 *
8027
 * \brief Lower-level APIs used for scanning individual values
8028
 *
8029
 * \section user-defined Scanning user-defined types
8030
 *
8031
 * User-defined types can be scanned by specializing the class template
8032
 * `scn::scanner`.
8033
 *
8034
 * \code{.cpp}
8035
 * struct mytype {
8036
 *   int key;
8037
 *   std::string value;
8038
 * };
8039
 *
8040
 * template <>
8041
 * struct scn::scanner<mytype> {
8042
 *   template <typename ParseContext>
8043
 *   constexpr auto parse(ParseCtx& pctx)
8044
 *     -> scan_expected<typename ParseContext::iterator> {
8045
 *     // parse() implementation just returning begin():
8046
 *     // only permits empty format specifiers
8047
 *     return pctx.begin();
8048
 *   }
8049
 *
8050
 *   template <typename Context>
8051
 *   auto scan(mytype& val, Context& ctx)
8052
 *     -> scan_expected<typename Context::iterator> {
8053
 *     return scn::scan<int, std::string>(ctx.range(), "{}: {}")
8054
 *       .transform([&](auto result) {
8055
 *         std::tie(val.key, val.value) = std::move(result->values());
8056
 *         return result.begin();
8057
 *       });
8058
 *   }
8059
 * };
8060
 * \endcode
8061
 *
8062
 * See also
8063
 * \ref g-usertypes
8064
 */
8065
8066
/**
8067
 * Scanning context.
8068
 *
8069
 * \ingroup ctx
8070
 */
8071
template <typename CharT>
8072
class basic_scan_context : public detail::scan_context_base<
8073
                               basic_scan_args<basic_scan_context<CharT>>> {
8074
    using base = detail::scan_context_base<basic_scan_args<basic_scan_context>>;
8075
8076
public:
8077
    /// Character type of the input
8078
    using char_type = CharT;
8079
    using buffer_type = detail::basic_scan_buffer<char_type>;
8080
    using range_type = typename buffer_type::range_type;
8081
    using iterator = ranges::iterator_t<range_type>;
8082
    using sentinel = ranges::sentinel_t<range_type>;
8083
    using parse_context_type = basic_scan_parse_context<char_type>;
8084
8085
    using args_type = basic_scan_args<basic_scan_context>;
8086
    using arg_type = basic_scan_arg<basic_scan_context>;
8087
8088
    /**
8089
     * The scanner type associated with this scanning context.
8090
     */
8091
    template <typename T>
8092
    using scanner_type = scanner<T, char_type>;
8093
8094
    constexpr basic_scan_context(iterator curr,
8095
                                 args_type a,
8096
                                 detail::locale_ref loc = {})
8097
        : base(SCN_MOVE(a), loc), m_current(curr)
8098
11.9M
    {
8099
11.9M
    }
scn::v3::basic_scan_context<char>::basic_scan_context(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >, scn::v3::detail::locale_ref)
Line
Count
Source
8098
3.50M
    {
8099
3.50M
    }
scn::v3::basic_scan_context<wchar_t>::basic_scan_context(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >, scn::v3::detail::locale_ref)
Line
Count
Source
8098
8.44M
    {
8099
8.44M
    }
8100
8101
    basic_scan_context(const basic_scan_context&) = delete;
8102
    basic_scan_context& operator=(const basic_scan_context&) = delete;
8103
8104
    basic_scan_context(basic_scan_context&&) = default;
8105
    basic_scan_context& operator=(basic_scan_context&&) = default;
8106
    ~basic_scan_context() = default;
8107
8108
    /**
8109
     * Returns an iterator pointing to the current position in the source
8110
     * range.
8111
     */
8112
    constexpr iterator begin() const
8113
34.7M
    {
8114
34.7M
        return m_current;
8115
34.7M
    }
scn::v3::basic_scan_context<char>::begin() const
Line
Count
Source
8113
10.1M
    {
8114
10.1M
        return m_current;
8115
10.1M
    }
scn::v3::basic_scan_context<wchar_t>::begin() const
Line
Count
Source
8113
24.5M
    {
8114
24.5M
        return m_current;
8115
24.5M
    }
8116
8117
    /**
8118
     * Returns a sentinel pointing to the end of the source range.
8119
     */
8120
    constexpr sentinel end() const
8121
11.7M
    {
8122
11.7M
        return ranges::default_sentinel;
8123
11.7M
    }
scn::v3::basic_scan_context<char>::end() const
Line
Count
Source
8121
3.43M
    {
8122
3.43M
        return ranges::default_sentinel;
8123
3.43M
    }
scn::v3::basic_scan_context<wchar_t>::end() const
Line
Count
Source
8121
8.30M
    {
8122
8.30M
        return ranges::default_sentinel;
8123
8.30M
    }
8124
8125
    /**
8126
     * Returns a subrange over `[begin(), end())`
8127
     */
8128
    constexpr auto range() const
8129
11.7M
    {
8130
11.7M
        return ranges::subrange{begin(), end()};
8131
11.7M
    }
scn::v3::basic_scan_context<char>::range() const
Line
Count
Source
8129
3.43M
    {
8130
3.43M
        return ranges::subrange{begin(), end()};
8131
3.43M
    }
scn::v3::basic_scan_context<wchar_t>::range() const
Line
Count
Source
8129
8.30M
    {
8130
8.30M
        return ranges::subrange{begin(), end()};
8131
8.30M
    }
8132
8133
    /// Advances the beginning of the source range to `it`
8134
    void advance_to(iterator it)
8135
11.0M
    {
8136
11.0M
        m_current = SCN_MOVE(it);
8137
11.0M
    }
scn::v3::basic_scan_context<char>::advance_to(scn::v3::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
8135
3.19M
    {
8136
3.19M
        m_current = SCN_MOVE(it);
8137
3.19M
    }
scn::v3::basic_scan_context<wchar_t>::advance_to(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
8135
7.83M
    {
8136
7.83M
        m_current = SCN_MOVE(it);
8137
7.83M
    }
8138
8139
private:
8140
    iterator m_current;
8141
};
8142
8143
namespace detail {
8144
template <typename T, typename ParseCtx>
8145
constexpr scan_expected<typename ParseCtx::iterator>
8146
scanner_parse_for_builtin_type(ParseCtx& pctx, format_specs& specs);
8147
8148
template <typename T, typename Context>
8149
scan_expected<typename Context::iterator>
8150
scanner_scan_for_builtin_type(T& val, Context& ctx, const format_specs& specs);
8151
}  // namespace detail
8152
8153
/////////////////////////////////////////////////////////////////
8154
// scanner
8155
/////////////////////////////////////////////////////////////////
8156
8157
/**
8158
 * `scanner` specialization for all built-in types
8159
 *
8160
 * \ingroup ctx
8161
 */
8162
template <typename T, typename CharT>
8163
struct scanner<T,
8164
               CharT,
8165
               std::enable_if_t<detail::arg_type_constant<T, CharT>::value !=
8166
                                    detail::arg_type::custom_type &&
8167
                                !detail::is_type_disabled<T>>> {
8168
    template <typename ParseCtx>
8169
    constexpr auto parse(ParseCtx& pctx)
8170
        -> scan_expected<typename ParseCtx::iterator>
8171
    {
8172
        return detail::scanner_parse_for_builtin_type<T>(pctx, m_specs);
8173
    }
8174
8175
    template <typename Context>
8176
    scan_expected<typename Context::iterator> scan(T& val, Context& ctx) const
8177
    {
8178
        return detail::scanner_scan_for_builtin_type(val, ctx, m_specs);
8179
    }
8180
8181
    constexpr auto& _format_specs()
8182
    {
8183
        return m_specs;
8184
    }
8185
8186
private:
8187
    detail::format_specs m_specs;
8188
};
8189
8190
namespace detail {
8191
template <typename T, typename ParseCtx>
8192
constexpr scan_expected<typename ParseCtx::iterator>
8193
scanner_parse_for_builtin_type(ParseCtx& pctx, format_specs& specs)
8194
{
8195
    using char_type = typename ParseCtx::char_type;
8196
8197
    auto begin = pctx.begin();
8198
    const auto end = pctx.end();
8199
    if (begin == end) {
8200
        return begin;
8201
    }
8202
8203
    using handler_type = specs_setter;
8204
    const auto type = arg_type_constant<T, char_type>::value;
8205
    auto checker =
8206
        detail::specs_checker<handler_type>(handler_type(specs), type);
8207
8208
    const auto it =
8209
        detail::parse_format_specs(to_address(begin), to_address(end), checker);
8210
    if (auto e = checker.get_error(); SCN_UNLIKELY(!e)) {
8211
        return unexpected(e);
8212
    }
8213
8214
    switch (type) {
8215
        case arg_type::none_type:
8216
            SCN_FALLTHROUGH;
8217
        case arg_type::custom_type:
8218
            SCN_ENSURE(false);
8219
            break;
8220
8221
        case arg_type::bool_type:
8222
            check_bool_type_specs(specs, checker);
8223
            break;
8224
8225
        case arg_type::schar_type:
8226
        case arg_type::short_type:
8227
        case arg_type::int_type:
8228
        case arg_type::long_type:
8229
        case arg_type::llong_type:
8230
        case arg_type::uchar_type:
8231
        case arg_type::ushort_type:
8232
        case arg_type::uint_type:
8233
        case arg_type::ulong_type:
8234
        case arg_type::ullong_type:
8235
            check_int_type_specs(specs, checker);
8236
            break;
8237
8238
        case arg_type::narrow_character_type:
8239
        case arg_type::wide_character_type:
8240
        case arg_type::code_point_type:
8241
            check_char_type_specs(specs, checker);
8242
            break;
8243
8244
        case arg_type::float_type:
8245
        case arg_type::double_type:
8246
        case arg_type::ldouble_type:
8247
            check_float_type_specs(specs, checker);
8248
            break;
8249
8250
        case arg_type::narrow_string_type:
8251
        case arg_type::narrow_string_view_type:
8252
        case arg_type::wide_string_type:
8253
        case arg_type::wide_string_view_type:
8254
            check_string_type_specs(specs, checker);
8255
            break;
8256
8257
        case arg_type::pointer_type:
8258
            check_pointer_type_specs(specs, checker);
8259
            break;
8260
8261
        case arg_type::narrow_regex_matches_type:
8262
        case arg_type::wide_regex_matches_type:
8263
            check_regex_type_specs(specs, checker);
8264
            break;
8265
8266
            SCN_CLANG_PUSH
8267
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8268
8269
        default:
8270
            SCN_ENSURE(false);
8271
            SCN_UNREACHABLE;
8272
8273
            SCN_CLANG_POP
8274
    }
8275
8276
    if (auto e = checker.get_error(); SCN_UNLIKELY(!e)) {
8277
        return unexpected(e);
8278
    }
8279
8280
    return {it};
8281
}
8282
}  // namespace detail
8283
8284
/**
8285
 * Type for discarding any scanned value.
8286
 * Example:
8287
 *
8288
 * \code{.cpp}
8289
 * auto r = scn::scan<scn::discard<int>>("42", "{}");
8290
 * // r.has_value() == true
8291
 * // decltype(r->value()) is scn::discard<int>
8292
 * \endcode
8293
 *
8294
 * \ingroup format-string
8295
 */
8296
template <typename T>
8297
struct discard {
8298
    constexpr discard() = default;
8299
8300
    constexpr discard(const T&) noexcept {}
8301
    constexpr discard(T&&) noexcept {}
8302
8303
    constexpr discard& operator=(const T&) noexcept
8304
    {
8305
        return *this;
8306
    }
8307
    constexpr discard& operator=(T&&) noexcept
8308
    {
8309
        return *this;
8310
    }
8311
};
8312
8313
template <typename T, typename CharT>
8314
struct scanner<discard<T>, CharT> : public scanner<T, CharT> {
8315
    template <typename Context>
8316
    auto scan(discard<T>&, Context& ctx) const
8317
    {
8318
        T val{};
8319
        return scanner<T, CharT>::scan(val, ctx);
8320
    }
8321
};
8322
8323
namespace detail {
8324
template <typename Range>
8325
scan_expected<ranges::iterator_t<Range>> internal_skip_classic_whitespace(
8326
    Range r,
8327
    bool allow_exhaustion);
8328
8329
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(T, Context) \
8330
    extern template scan_expected<Context::iterator>         \
8331
    scanner_scan_for_builtin_type(T&, Context&, const format_specs&);
8332
8333
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(Context)                   \
8334
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(char, Context)                \
8335
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wchar_t, Context)             \
8336
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8337
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8338
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(short, Context)               \
8339
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int, Context)                 \
8340
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long, Context)                \
8341
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long long, Context)           \
8342
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned char, Context)       \
8343
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned short, Context)      \
8344
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned int, Context)        \
8345
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long, Context)       \
8346
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long long, Context)  \
8347
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(float, Context)               \
8348
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(double, Context)              \
8349
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long double, Context)         \
8350
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::string, Context)         \
8351
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::wstring, Context)        \
8352
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(                              \
8353
        std::basic_string_view<Context::char_type>, Context)               \
8354
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(regex_matches, Context)       \
8355
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wregex_matches, Context)      \
8356
    extern template scan_expected<ranges::iterator_t<Context::range_type>> \
8357
    internal_skip_classic_whitespace(Context::range_type, bool);
8358
8359
SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(scan_context)
8360
8361
}  // namespace detail
8362
8363
/////////////////////////////////////////////////////////////////
8364
// visit_scan_arg
8365
/////////////////////////////////////////////////////////////////
8366
8367
/**
8368
 * Visit a `basic_scan_arg` with `Visitor`.
8369
 * Calls `vis` with the value stored in `arg`.
8370
 * If no value is contained in `arg`, calls `vis` with a `monostate`.
8371
 *
8372
 * \return `vis(x)`, where `x` is either a reference to the value contained
8373
 * in `arg`, or a `basic_scan_arg::handle`.
8374
 */
8375
template <typename Visitor, typename Ctx>
8376
constexpr decltype(auto) visit_scan_arg(Visitor&& vis, basic_scan_arg<Ctx>& arg)
8377
69.3M
{
8378
69.3M
#define SCN_VISIT(Type)                                         \
8379
69.3M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
69.3M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
69.3M
    }                                                           \
8382
69.3M
    else {                                                      \
8383
69.3M
        return vis(monostate_val);                              \
8384
69.3M
    }
8385
8386
69.3M
    monostate monostate_val{};
8387
8388
69.3M
    switch (arg.m_type) {
8389
772k
        case detail::arg_type::schar_type:
8390
772k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
949k
        case detail::arg_type::int_type:
8394
949k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
958k
        case detail::arg_type::llong_type:
8398
958k
            SCN_VISIT(long long);
8399
744k
        case detail::arg_type::uchar_type:
8400
744k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
834k
        case detail::arg_type::uint_type:
8404
834k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
835k
        case detail::arg_type::ullong_type:
8408
835k
            SCN_VISIT(unsigned long long);
8409
7.13k
        case detail::arg_type::pointer_type:
8410
7.13k
            SCN_VISIT(void*);
8411
7.17k
        case detail::arg_type::bool_type:
8412
7.17k
            SCN_VISIT(bool);
8413
6.08k
        case detail::arg_type::narrow_character_type:
8414
6.08k
            SCN_VISIT(char);
8415
1.04k
        case detail::arg_type::wide_character_type:
8416
1.04k
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
1.64M
        case detail::arg_type::float_type:
8420
1.64M
            SCN_VISIT(float);
8421
1.77M
        case detail::arg_type::double_type:
8422
1.77M
            SCN_VISIT(double);
8423
1.78M
        case detail::arg_type::ldouble_type:
8424
1.78M
            SCN_VISIT(long double);
8425
163k
        case detail::arg_type::narrow_string_view_type:
8426
163k
            SCN_VISIT(std::string_view);
8427
324k
        case detail::arg_type::narrow_string_type:
8428
324k
            SCN_VISIT(std::string);
8429
19.5M
        case detail::arg_type::wide_string_view_type:
8430
19.5M
            SCN_VISIT(std::wstring_view);
8431
39.0M
        case detail::arg_type::wide_string_type:
8432
39.0M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
69.3M
            SCN_CLANG_POP
8456
69.3M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
1.38M
{
8378
1.38M
#define SCN_VISIT(Type)                                         \
8379
1.38M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
1.38M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
1.38M
    }                                                           \
8382
1.38M
    else {                                                      \
8383
1.38M
        return vis(monostate_val);                              \
8384
1.38M
    }
8385
8386
1.38M
    monostate monostate_val{};
8387
8388
1.38M
    switch (arg.m_type) {
8389
78.8k
        case detail::arg_type::schar_type:
8390
78.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
91.8k
        case detail::arg_type::int_type:
8394
91.8k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
92.8k
        case detail::arg_type::llong_type:
8398
92.8k
            SCN_VISIT(long long);
8399
69.9k
        case detail::arg_type::uchar_type:
8400
69.9k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
78.7k
        case detail::arg_type::uint_type:
8404
78.7k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
79.0k
        case detail::arg_type::ullong_type:
8408
79.0k
            SCN_VISIT(unsigned long long);
8409
670
        case detail::arg_type::pointer_type:
8410
670
            SCN_VISIT(void*);
8411
670
        case detail::arg_type::bool_type:
8412
670
            SCN_VISIT(bool);
8413
670
        case detail::arg_type::narrow_character_type:
8414
670
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
217k
        case detail::arg_type::float_type:
8420
217k
            SCN_VISIT(float);
8421
241k
        case detail::arg_type::double_type:
8422
241k
            SCN_VISIT(double);
8423
245k
        case detail::arg_type::ldouble_type:
8424
245k
            SCN_VISIT(long double);
8425
93.0k
        case detail::arg_type::narrow_string_view_type:
8426
93.0k
            SCN_VISIT(std::string_view);
8427
93.0k
        case detail::arg_type::narrow_string_type:
8428
93.0k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
670
        case detail::arg_type::wide_string_type:
8432
670
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
1.38M
            SCN_CLANG_POP
8456
1.38M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
1.23M
{
8378
1.23M
#define SCN_VISIT(Type)                                         \
8379
1.23M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
1.23M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
1.23M
    }                                                           \
8382
1.23M
    else {                                                      \
8383
1.23M
        return vis(monostate_val);                              \
8384
1.23M
    }
8385
8386
1.23M
    monostate monostate_val{};
8387
8388
1.23M
    switch (arg.m_type) {
8389
78.7k
        case detail::arg_type::schar_type:
8390
78.7k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
89.5k
        case detail::arg_type::int_type:
8394
89.5k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
91.0k
        case detail::arg_type::llong_type:
8398
91.0k
            SCN_VISIT(long long);
8399
69.8k
        case detail::arg_type::uchar_type:
8400
69.8k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
77.8k
        case detail::arg_type::uint_type:
8404
77.8k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
78.8k
        case detail::arg_type::ullong_type:
8408
78.8k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
202k
        case detail::arg_type::float_type:
8420
202k
            SCN_VISIT(float);
8421
224k
        case detail::arg_type::double_type:
8422
224k
            SCN_VISIT(double);
8423
227k
        case detail::arg_type::ldouble_type:
8424
227k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
93.5k
        case detail::arg_type::narrow_string_type:
8428
93.5k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
0
        case detail::arg_type::wide_string_type:
8432
0
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
1.23M
            SCN_CLANG_POP
8456
1.23M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
Unexecuted instantiation: decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::custom_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::custom_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
3.50M
{
8378
3.50M
#define SCN_VISIT(Type)                                         \
8379
3.50M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
3.50M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
3.50M
    }                                                           \
8382
3.50M
    else {                                                      \
8383
3.50M
        return vis(monostate_val);                              \
8384
3.50M
    }
8385
8386
3.50M
    monostate monostate_val{};
8387
8388
3.50M
    switch (arg.m_type) {
8389
247k
        case detail::arg_type::schar_type:
8390
247k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
326k
        case detail::arg_type::int_type:
8394
326k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
326k
        case detail::arg_type::llong_type:
8398
326k
            SCN_VISIT(long long);
8399
242k
        case detail::arg_type::uchar_type:
8400
242k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
281k
        case detail::arg_type::uint_type:
8404
281k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
278k
        case detail::arg_type::ullong_type:
8408
278k
            SCN_VISIT(unsigned long long);
8409
5.41k
        case detail::arg_type::pointer_type:
8410
5.41k
            SCN_VISIT(void*);
8411
5.44k
        case detail::arg_type::bool_type:
8412
5.44k
            SCN_VISIT(bool);
8413
5.41k
        case detail::arg_type::narrow_character_type:
8414
5.41k
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
516k
        case detail::arg_type::float_type:
8420
516k
            SCN_VISIT(float);
8421
558k
        case detail::arg_type::double_type:
8422
558k
            SCN_VISIT(double);
8423
559k
        case detail::arg_type::ldouble_type:
8424
559k
            SCN_VISIT(long double);
8425
70.8k
        case detail::arg_type::narrow_string_view_type:
8426
70.8k
            SCN_VISIT(std::string_view);
8427
70.8k
        case detail::arg_type::narrow_string_type:
8428
70.8k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
5.41k
        case detail::arg_type::wide_string_type:
8432
5.41k
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
3.50M
            SCN_CLANG_POP
8456
3.50M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::arg_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
3.43M
{
8378
3.43M
#define SCN_VISIT(Type)                                         \
8379
3.43M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
3.43M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
3.43M
    }                                                           \
8382
3.43M
    else {                                                      \
8383
3.43M
        return vis(monostate_val);                              \
8384
3.43M
    }
8385
8386
3.43M
    monostate monostate_val{};
8387
8388
3.43M
    switch (arg.m_type) {
8389
249k
        case detail::arg_type::schar_type:
8390
249k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
322k
        case detail::arg_type::int_type:
8394
322k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
328k
        case detail::arg_type::llong_type:
8398
328k
            SCN_VISIT(long long);
8399
244k
        case detail::arg_type::uchar_type:
8400
244k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
277k
        case detail::arg_type::uint_type:
8404
277k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
280k
        case detail::arg_type::ullong_type:
8408
280k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
526k
        case detail::arg_type::float_type:
8420
526k
            SCN_VISIT(float);
8421
564k
        case detail::arg_type::double_type:
8422
564k
            SCN_VISIT(double);
8423
571k
        case detail::arg_type::ldouble_type:
8424
571k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
65.9k
        case detail::arg_type::narrow_string_type:
8428
65.9k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
0
        case detail::arg_type::wide_string_type:
8432
0
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
3.43M
            SCN_CLANG_POP
8456
3.43M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
23.5M
{
8378
23.5M
#define SCN_VISIT(Type)                                         \
8379
23.5M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
23.5M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
23.5M
    }                                                           \
8382
23.5M
    else {                                                      \
8383
23.5M
        return vis(monostate_val);                              \
8384
23.5M
    }
8385
8386
23.5M
    monostate monostate_val{};
8387
8388
23.5M
    switch (arg.m_type) {
8389
11.8k
        case detail::arg_type::schar_type:
8390
11.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
12.4k
        case detail::arg_type::int_type:
8394
12.4k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
11.8k
        case detail::arg_type::llong_type:
8398
11.8k
            SCN_VISIT(long long);
8399
11.7k
        case detail::arg_type::uchar_type:
8400
11.7k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
12.3k
        case detail::arg_type::uint_type:
8404
12.3k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
11.8k
        case detail::arg_type::ullong_type:
8408
11.8k
            SCN_VISIT(unsigned long long);
8409
592
        case detail::arg_type::pointer_type:
8410
592
            SCN_VISIT(void*);
8411
592
        case detail::arg_type::bool_type:
8412
592
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
592
        case detail::arg_type::wide_character_type:
8416
592
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
21.3k
        case detail::arg_type::float_type:
8420
21.3k
            SCN_VISIT(float);
8421
21.9k
        case detail::arg_type::double_type:
8422
21.9k
            SCN_VISIT(double);
8423
21.4k
        case detail::arg_type::ldouble_type:
8424
21.4k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
592
        case detail::arg_type::narrow_string_type:
8428
592
            SCN_VISIT(std::string);
8429
11.7M
        case detail::arg_type::wide_string_view_type:
8430
11.7M
            SCN_VISIT(std::wstring_view);
8431
11.7M
        case detail::arg_type::wide_string_type:
8432
11.7M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
23.5M
            SCN_CLANG_POP
8456
23.5M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
Unexecuted instantiation: decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::custom_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::custom_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
16.1M
{
8378
16.1M
#define SCN_VISIT(Type)                                         \
8379
16.1M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
16.1M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
16.1M
    }                                                           \
8382
16.1M
    else {                                                      \
8383
16.1M
        return vis(monostate_val);                              \
8384
16.1M
    }
8385
8386
16.1M
    monostate monostate_val{};
8387
8388
16.1M
    switch (arg.m_type) {
8389
47.1k
        case detail::arg_type::schar_type:
8390
47.1k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
47.7k
        case detail::arg_type::int_type:
8394
47.7k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
47.3k
        case detail::arg_type::llong_type:
8398
47.3k
            SCN_VISIT(long long);
8399
47.0k
        case detail::arg_type::uchar_type:
8400
47.0k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
47.6k
        case detail::arg_type::uint_type:
8404
47.6k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
47.2k
        case detail::arg_type::ullong_type:
8408
47.2k
            SCN_VISIT(unsigned long long);
8409
452
        case detail::arg_type::pointer_type:
8410
452
            SCN_VISIT(void*);
8411
462
        case detail::arg_type::bool_type:
8412
462
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
452
        case detail::arg_type::wide_character_type:
8416
452
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
68.7k
        case detail::arg_type::float_type:
8420
68.7k
            SCN_VISIT(float);
8421
69.2k
        case detail::arg_type::double_type:
8422
69.2k
            SCN_VISIT(double);
8423
68.9k
        case detail::arg_type::ldouble_type:
8424
68.9k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
452
        case detail::arg_type::narrow_string_type:
8428
452
            SCN_VISIT(std::string);
8429
7.81M
        case detail::arg_type::wide_string_view_type:
8430
7.81M
            SCN_VISIT(std::wstring_view);
8431
7.81M
        case detail::arg_type::wide_string_type:
8432
7.81M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
16.1M
            SCN_CLANG_POP
8456
16.1M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
11.8M
{
8378
11.8M
#define SCN_VISIT(Type)                                         \
8379
11.8M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
11.8M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
11.8M
    }                                                           \
8382
11.8M
    else {                                                      \
8383
11.8M
        return vis(monostate_val);                              \
8384
11.8M
    }
8385
8386
11.8M
    monostate monostate_val{};
8387
8388
11.8M
    switch (arg.m_type) {
8389
11.8k
        case detail::arg_type::schar_type:
8390
11.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
11.8k
        case detail::arg_type::int_type:
8394
11.8k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
11.8k
        case detail::arg_type::llong_type:
8398
11.8k
            SCN_VISIT(long long);
8399
11.7k
        case detail::arg_type::uchar_type:
8400
11.7k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
11.8k
        case detail::arg_type::uint_type:
8404
11.8k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
11.8k
        case detail::arg_type::ullong_type:
8408
11.8k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
21.3k
        case detail::arg_type::float_type:
8420
21.3k
            SCN_VISIT(float);
8421
21.3k
        case detail::arg_type::double_type:
8422
21.3k
            SCN_VISIT(double);
8423
21.3k
        case detail::arg_type::ldouble_type:
8424
21.3k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
0
        case detail::arg_type::narrow_string_type:
8428
0
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
11.7M
        case detail::arg_type::wide_string_type:
8432
11.7M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
11.8M
            SCN_CLANG_POP
8456
11.8M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::arg_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
8.30M
{
8378
8.30M
#define SCN_VISIT(Type)                                         \
8379
8.30M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
8.30M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
8.30M
    }                                                           \
8382
8.30M
    else {                                                      \
8383
8.30M
        return vis(monostate_val);                              \
8384
8.30M
    }
8385
8386
8.30M
    monostate monostate_val{};
8387
8388
8.30M
    switch (arg.m_type) {
8389
47.1k
        case detail::arg_type::schar_type:
8390
47.1k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
47.2k
        case detail::arg_type::int_type:
8394
47.2k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
47.3k
        case detail::arg_type::llong_type:
8398
47.3k
            SCN_VISIT(long long);
8399
47.0k
        case detail::arg_type::uchar_type:
8400
47.0k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
47.1k
        case detail::arg_type::uint_type:
8404
47.1k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
47.2k
        case detail::arg_type::ullong_type:
8408
47.2k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
68.7k
        case detail::arg_type::float_type:
8420
68.7k
            SCN_VISIT(float);
8421
68.7k
        case detail::arg_type::double_type:
8422
68.7k
            SCN_VISIT(double);
8423
68.8k
        case detail::arg_type::ldouble_type:
8424
68.8k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
0
        case detail::arg_type::narrow_string_type:
8428
0
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
7.81M
        case detail::arg_type::wide_string_type:
8432
7.81M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
8.30M
            SCN_CLANG_POP
8456
8.30M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
8463
8464
/////////////////////////////////////////////////////////////////
8465
// vscan
8466
/////////////////////////////////////////////////////////////////
8467
8468
/**
8469
 * \defgroup vscan Type-erased scanning API
8470
 *
8471
 * \brief Lower-level scanning API with type-erased arguments
8472
 */
8473
8474
namespace detail {
8475
template <typename Source>
8476
using scan_result_value_type =
8477
    std::conditional_t<std::is_same_v<remove_cvref_t<Source>, std::FILE*>,
8478
                       std::FILE*,
8479
                       borrowed_tail_subrange_t<Source>>;
8480
}
8481
8482
/**
8483
 * Result type returned by `vscan`.
8484
 *
8485
 * The value type of the `scan_expected` is `FILE*` if `Source` is `FILE*`,
8486
 * `detail::borrowed_tail_subrange_t<Source>` otherwise.
8487
 *
8488
 * \ingroup vscan
8489
 */
8490
template <typename Source>
8491
using vscan_result = scan_expected<detail::scan_result_value_type<Source>>;
8492
8493
namespace detail {
8494
scan_expected<std::ptrdiff_t> vscan_impl(std::string_view source,
8495
                                         std::string_view format,
8496
                                         scan_args args);
8497
scan_expected<std::ptrdiff_t> vscan_impl(scan_buffer& source,
8498
                                         std::string_view format,
8499
                                         scan_args args);
8500
8501
scan_expected<std::ptrdiff_t> vscan_impl(std::wstring_view source,
8502
                                         std::wstring_view format,
8503
                                         wscan_args args);
8504
scan_expected<std::ptrdiff_t> vscan_impl(wscan_buffer& source,
8505
                                         std::wstring_view format,
8506
                                         wscan_args args);
8507
8508
#if !SCN_DISABLE_LOCALE
8509
template <typename Locale>
8510
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8511
                                                   std::string_view source,
8512
                                                   std::string_view format,
8513
                                                   scan_args args);
8514
template <typename Locale>
8515
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8516
                                                   scan_buffer& source,
8517
                                                   std::string_view format,
8518
                                                   scan_args args);
8519
8520
template <typename Locale>
8521
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8522
                                                   std::wstring_view source,
8523
                                                   std::wstring_view format,
8524
                                                   wscan_args args);
8525
template <typename Locale>
8526
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8527
                                                   wscan_buffer& source,
8528
                                                   std::wstring_view format,
8529
                                                   wscan_args args);
8530
#endif
8531
8532
scan_expected<std::ptrdiff_t> vscan_value_impl(
8533
    std::string_view source,
8534
    basic_scan_arg<scan_context> arg);
8535
scan_expected<std::ptrdiff_t> vscan_value_impl(
8536
    scan_buffer& source,
8537
    basic_scan_arg<scan_context> arg);
8538
8539
scan_expected<std::ptrdiff_t> vscan_value_impl(
8540
    std::wstring_view source,
8541
    basic_scan_arg<wscan_context> arg);
8542
scan_expected<std::ptrdiff_t> vscan_value_impl(
8543
    wscan_buffer& source,
8544
    basic_scan_arg<wscan_context> arg);
8545
8546
template <typename Range, typename CharT>
8547
auto vscan_generic(Range&& range,
8548
                   std::basic_string_view<CharT> format,
8549
                   basic_scan_args<basic_scan_context<CharT>> args)
8550
    -> vscan_result<Range>
8551
28.6M
{
8552
28.6M
    auto buffer = make_scan_buffer(range);
8553
8554
28.6M
    auto result = vscan_impl(buffer, format, args);
8555
28.6M
    if (SCN_UNLIKELY(!result)) {
8556
1.16M
        return unexpected(result.error());
8557
1.16M
    }
8558
27.4M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
28.6M
}
_ZN3scn2v36detail13vscan_genericIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISN_EEEE
Line
Count
Source
8551
36.1k
{
8552
36.1k
    auto buffer = make_scan_buffer(range);
8553
8554
36.1k
    auto result = vscan_impl(buffer, format, args);
8555
36.1k
    if (SCN_UNLIKELY(!result)) {
8556
34.8k
        return unexpected(result.error());
8557
34.8k
    }
8558
1.25k
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
36.1k
}
_ZN3scn2v36detail13vscan_genericIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISN_EEEE
Line
Count
Source
8551
72.2k
{
8552
72.2k
    auto buffer = make_scan_buffer(range);
8553
8554
72.2k
    auto result = vscan_impl(buffer, format, args);
8555
72.2k
    if (SCN_UNLIKELY(!result)) {
8556
72.1k
        return unexpected(result.error());
8557
72.1k
    }
8558
133
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
72.2k
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISQ_EEEE
Line
Count
Source
8551
2.22M
{
8552
2.22M
    auto buffer = make_scan_buffer(range);
8553
8554
2.22M
    auto result = vscan_impl(buffer, format, args);
8555
2.22M
    if (SCN_UNLIKELY(!result)) {
8556
178k
        return unexpected(result.error());
8557
178k
    }
8558
2.04M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
2.22M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISV_EEEE
Line
Count
Source
8551
2.16M
{
8552
2.16M
    auto buffer = make_scan_buffer(range);
8553
8554
2.16M
    auto result = vscan_impl(buffer, format, args);
8555
2.16M
    if (SCN_UNLIKELY(!result)) {
8556
173k
        return unexpected(result.error());
8557
173k
    }
8558
1.99M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
2.16M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISQ_EEEE
Line
Count
Source
8551
15.9M
{
8552
15.9M
    auto buffer = make_scan_buffer(range);
8553
8554
15.9M
    auto result = vscan_impl(buffer, format, args);
8555
15.9M
    if (SCN_UNLIKELY(!result)) {
8556
357k
        return unexpected(result.error());
8557
357k
    }
8558
15.6M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
15.9M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISV_EEEE
Line
Count
Source
8551
8.17M
{
8552
8.17M
    auto buffer = make_scan_buffer(range);
8553
8554
8.17M
    auto result = vscan_impl(buffer, format, args);
8555
8.17M
    if (SCN_UNLIKELY(!result)) {
8556
347k
        return unexpected(result.error());
8557
347k
    }
8558
7.82M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
8.17M
}
8560
8561
template <typename Locale, typename Range, typename CharT>
8562
auto vscan_localized_generic(const Locale& loc,
8563
                             Range&& range,
8564
                             std::basic_string_view<CharT> format,
8565
                             basic_scan_args<basic_scan_context<CharT>> args)
8566
    -> vscan_result<Range>
8567
28.6M
{
8568
28.6M
#if !SCN_DISABLE_LOCALE
8569
28.6M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
28.6M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
28.6M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
28.6M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
28.6M
    if (SCN_UNLIKELY(!result)) {
8576
1.16M
        return unexpected(result.error());
8577
1.16M
    }
8578
27.4M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
28.6M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISR_EEEE
Line
Count
Source
8567
36.1k
{
8568
36.1k
#if !SCN_DISABLE_LOCALE
8569
36.1k
    auto buffer = detail::make_scan_buffer(range);
8570
8571
36.1k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
36.1k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
36.1k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
36.1k
    if (SCN_UNLIKELY(!result)) {
8576
34.8k
        return unexpected(result.error());
8577
34.8k
    }
8578
1.25k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
36.1k
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISR_EEEE
Line
Count
Source
8567
72.2k
{
8568
72.2k
#if !SCN_DISABLE_LOCALE
8569
72.2k
    auto buffer = detail::make_scan_buffer(range);
8570
8571
72.2k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
72.2k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
72.2k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
72.2k
    if (SCN_UNLIKELY(!result)) {
8576
72.1k
        return unexpected(result.error());
8577
72.1k
    }
8578
133
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
72.2k
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcSA_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISU_EEEE
Line
Count
Source
8567
2.22M
{
8568
2.22M
#if !SCN_DISABLE_LOCALE
8569
2.22M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
2.22M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
2.22M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
2.22M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
2.22M
    if (SCN_UNLIKELY(!result)) {
8576
178k
        return unexpected(result.error());
8577
178k
    }
8578
2.04M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
2.22M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISZ_EEEE
Line
Count
Source
8567
2.16M
{
8568
2.16M
#if !SCN_DISABLE_LOCALE
8569
2.16M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
2.16M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
2.16M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
2.16M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
2.16M
    if (SCN_UNLIKELY(!result)) {
8576
173k
        return unexpected(result.error());
8577
173k
    }
8578
1.99M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
2.16M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKwSA_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISU_EEEE
Line
Count
Source
8567
15.9M
{
8568
15.9M
#if !SCN_DISABLE_LOCALE
8569
15.9M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
15.9M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
15.9M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
15.9M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
15.9M
    if (SCN_UNLIKELY(!result)) {
8576
357k
        return unexpected(result.error());
8577
357k
    }
8578
15.6M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
15.9M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISZ_EEEE
Line
Count
Source
8567
8.17M
{
8568
8.17M
#if !SCN_DISABLE_LOCALE
8569
8.17M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
8.17M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
8.17M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
8.17M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
8.17M
    if (SCN_UNLIKELY(!result)) {
8576
347k
        return unexpected(result.error());
8577
347k
    }
8578
7.82M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
8.17M
}
8586
8587
template <typename Range, typename CharT>
8588
auto vscan_value_generic(Range&& range,
8589
                         basic_scan_arg<basic_scan_context<CharT>> arg)
8590
    -> vscan_result<Range>
8591
12.6M
{
8592
12.6M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
12.6M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
12.6M
    if (SCN_UNLIKELY(!result)) {
8596
129k
        return unexpected(result.error());
8597
129k
    }
8598
12.5M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
12.6M
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
459k
{
8592
459k
    auto buffer = detail::make_scan_buffer(range);
8593
8594
459k
    auto result = detail::vscan_value_impl(buffer, arg);
8595
459k
    if (SCN_UNLIKELY(!result)) {
8596
21.9k
        return unexpected(result.error());
8597
21.9k
    }
8598
437k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
459k
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
411k
{
8592
411k
    auto buffer = detail::make_scan_buffer(range);
8593
8594
411k
    auto result = detail::vscan_value_impl(buffer, arg);
8595
411k
    if (SCN_UNLIKELY(!result)) {
8596
21.2k
        return unexpected(result.error());
8597
21.2k
    }
8598
390k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
411k
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
7.85M
{
8592
7.85M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
7.85M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
7.85M
    if (SCN_UNLIKELY(!result)) {
8596
43.9k
        return unexpected(result.error());
8597
43.9k
    }
8598
7.80M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
7.85M
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
3.94M
{
8592
3.94M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
3.94M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
3.94M
    if (SCN_UNLIKELY(!result)) {
8596
42.4k
        return unexpected(result.error());
8597
42.4k
    }
8598
3.90M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
3.94M
}
8600
}  // namespace detail
8601
8602
SCN_GCC_PUSH
8603
SCN_GCC_IGNORE("-Wnoexcept")
8604
8605
/**
8606
 * Perform actual scanning from `source`, according to `format`, into the
8607
 * type-erased arguments at `args`. Called by `scan`.
8608
 *
8609
 * \ingroup vscan
8610
 */
8611
template <typename Source>
8612
auto vscan(Source&& source, std::string_view format, scan_args args)
8613
    -> vscan_result<Source>
8614
4.42M
{
8615
4.42M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
4.42M
}
_ZN3scn2v35vscanIRNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESE_NS0_6detail22borrowed_tail_subrangeISA_Xsr6rangesE14borrowed_rangeISA_EEE4typeEE4typeEEEOSA_S6_NS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
36.1k
{
8615
36.1k
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
36.1k
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NSA_17basic_string_viewIcNSA_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
2.22M
{
8615
2.22M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
2.22M
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
2.16M
{
8615
2.16M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
2.16M
}
8617
8618
/**
8619
 * Perform actual scanning from `source`, according to `format`, into the
8620
 * type-erased arguments at `args`, using `loc`, if requested. Called by
8621
 * `scan`.
8622
 *
8623
 * \ingroup locale
8624
 */
8625
template <typename Source,
8626
          typename Locale,
8627
          typename = std::void_t<decltype(Locale::classic())>>
8628
auto vscan(const Locale& loc,
8629
           Source&& source,
8630
           std::string_view format,
8631
           scan_args args) -> vscan_result<Source>
8632
4.42M
{
8633
4.42M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
4.42M
}
_ZN3scn2v35vscanIRNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS2_6localeEvEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEERKT0_OSB_S6_NS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
36.1k
{
8633
36.1k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
36.1k
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENSt3__16localeEvEENS0_13scan_expectedINS9_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEERKT0_OSD_NS9_17basic_string_viewIcNS9_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
2.22M
{
8633
2.22M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
2.22M
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS6_6localeEvEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEERKT0_OSI_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
2.16M
{
8633
2.16M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
2.16M
}
8635
8636
/**
8637
 * Perform actual scanning from `source` into the type-erased argument at
8638
 * `arg`. Called by `scan_value`.
8639
 *
8640
 * \ingroup vscan
8641
 */
8642
template <typename Source>
8643
auto vscan_value(Source&& source, basic_scan_arg<scan_context> arg)
8644
    -> vscan_result<Source>
8645
871k
{
8646
871k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
871k
}
_ZN3scn2v311vscan_valueINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS0_14basic_scan_argINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8645
459k
{
8646
459k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
459k
}
_ZN3scn2v311vscan_valueINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS0_14basic_scan_argINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8645
411k
{
8646
411k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
411k
}
8648
8649
/**
8650
 * Perform actual scanning from `stdin`, according to `format`, into the
8651
 * type-erased arguments at `args`. Called by `input`.
8652
 *
8653
 * \ingroup vscan
8654
 */
8655
scan_error vinput(std::string_view format, scan_args args);
8656
8657
namespace detail {
8658
template <typename T>
8659
auto scan_int_impl(std::string_view source, T& value, int base)
8660
    -> scan_expected<std::string_view::iterator>;
8661
8662
template <typename T>
8663
auto scan_int_exhaustive_valid_impl(std::string_view source) -> T;
8664
8665
#if !SCN_DISABLE_TYPE_SCHAR
8666
extern template auto scan_int_impl(std::string_view source,
8667
                                   signed char& value,
8668
                                   int base)
8669
    -> scan_expected<std::string_view::iterator>;
8670
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8671
    -> signed char;
8672
#endif
8673
#if !SCN_DISABLE_TYPE_SHORT
8674
extern template auto scan_int_impl(std::string_view source,
8675
                                   short& value,
8676
                                   int base)
8677
    -> scan_expected<std::string_view::iterator>;
8678
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> short;
8679
#endif
8680
#if !SCN_DISABLE_TYPE_INT
8681
extern template auto scan_int_impl(std::string_view source,
8682
                                   int& value,
8683
                                   int base)
8684
    -> scan_expected<std::string_view::iterator>;
8685
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> int;
8686
#endif
8687
#if !SCN_DISABLE_TYPE_LONG
8688
extern template auto scan_int_impl(std::string_view source,
8689
                                   long& value,
8690
                                   int base)
8691
    -> scan_expected<std::string_view::iterator>;
8692
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> long;
8693
#endif
8694
#if !SCN_DISABLE_TYPE_LONG_LONG
8695
extern template auto scan_int_impl(std::string_view source,
8696
                                   long long& value,
8697
                                   int base)
8698
    -> scan_expected<std::string_view::iterator>;
8699
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8700
    -> long long;
8701
#endif
8702
#if !SCN_DISABLE_TYPE_UCHAR
8703
extern template auto scan_int_impl(std::string_view source,
8704
                                   unsigned char& value,
8705
                                   int base)
8706
    -> scan_expected<std::string_view::iterator>;
8707
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8708
    -> unsigned char;
8709
#endif
8710
#if !SCN_DISABLE_TYPE_USHORT
8711
extern template auto scan_int_impl(std::string_view source,
8712
                                   unsigned short& value,
8713
                                   int base)
8714
    -> scan_expected<std::string_view::iterator>;
8715
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8716
    -> unsigned short;
8717
#endif
8718
#if !SCN_DISABLE_TYPE_UINT
8719
extern template auto scan_int_impl(std::string_view source,
8720
                                   unsigned int& value,
8721
                                   int base)
8722
    -> scan_expected<std::string_view::iterator>;
8723
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8724
    -> unsigned int;
8725
#endif
8726
#if !SCN_DISABLE_TYPE_ULONG
8727
extern template auto scan_int_impl(std::string_view source,
8728
                                   unsigned long& value,
8729
                                   int base)
8730
    -> scan_expected<std::string_view::iterator>;
8731
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8732
    -> unsigned long;
8733
#endif
8734
#if !SCN_DISABLE_TYPE_ULONG_LONG
8735
extern template auto scan_int_impl(std::string_view source,
8736
                                   unsigned long long& value,
8737
                                   int base)
8738
    -> scan_expected<std::string_view::iterator>;
8739
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8740
    -> unsigned long long;
8741
#endif
8742
8743
}  // namespace detail
8744
8745
SCN_GCC_POP  // -Wnoexcept
8746
8747
    // dummy namespace to reset formatting
8748
    namespace detail
8749
{
8750
}
8751
8752
/////////////////////////////////////////////////////////////////
8753
// scan
8754
/////////////////////////////////////////////////////////////////
8755
8756
/**
8757
 * Convenience function to construct the value to return from `scan`,
8758
 * based on the return value of `vscan`, and the argument store.
8759
 *
8760
 * Takes its arguments by rvalue reference to disallow extraneous copying.
8761
 *
8762
 * Note: Because `vscan` places the values it scanned into the argument
8763
 * store passed to it, the call to `make_scan_result` needs to happen
8764
 * strictly after calling `vscan`. This means, that this is UB:
8765
 * `return scn::make_scan_result(scn::vscan(...), std::move(args.args()));`
8766
 *
8767
 * Example:
8768
 * \code{.cpp}
8769
 * auto args = scn::make_scan_args<scan_context, Args...>();
8770
 * auto result = scn::vscan(std::forward<Source>(source), format, args);
8771
 * return scn::make_scan_result(std::move(result), std::move(args.args()));
8772
 * \endcode
8773
 *
8774
 * \ingroup result
8775
 */
8776
template <typename Result, typename... Args>
8777
auto make_scan_result(scan_expected<Result>&& result,
8778
                      std::tuple<Args...>&& args)
8779
    -> scan_expected<scan_result<Result, Args...>>
8780
57.3M
{
8781
57.3M
    if (SCN_UNLIKELY(!result)) {
8782
2.32M
        return unexpected(result.error());
8783
2.32M
    }
8784
54.9M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
57.3M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<char>&&)
Line
Count
Source
8780
8.03k
{
8781
8.03k
    if (SCN_UNLIKELY(!result)) {
8782
7.90k
        return unexpected(result.error());
8783
7.90k
    }
8784
122
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.03k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
401k
{
8781
401k
    if (SCN_UNLIKELY(!result)) {
8782
46.9k
        return unexpected(result.error());
8783
46.9k
    }
8784
354k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
401k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
347k
{
8781
347k
    if (SCN_UNLIKELY(!result)) {
8782
46.9k
        return unexpected(result.error());
8783
46.9k
    }
8784
300k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
347k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
722k
{
8781
722k
    if (SCN_UNLIKELY(!result)) {
8782
43.0k
        return unexpected(result.error());
8783
43.0k
    }
8784
679k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
722k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<bool>&&)
Line
Count
Source
8780
8.03k
{
8781
8.03k
    if (SCN_UNLIKELY(!result)) {
8782
8.03k
        return unexpected(result.error());
8783
8.03k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.03k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<void*>&&)
Line
Count
Source
8780
8.03k
{
8781
8.03k
    if (SCN_UNLIKELY(!result)) {
8782
8.03k
        return unexpected(result.error());
8783
8.03k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.03k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
138k
{
8781
138k
    if (SCN_UNLIKELY(!result)) {
8782
16.4k
        return unexpected(result.error());
8783
16.4k
    }
8784
121k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
138k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
8.03k
{
8781
8.03k
    if (SCN_UNLIKELY(!result)) {
8782
7.23k
        return unexpected(result.error());
8783
7.23k
    }
8784
796
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
8.03k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
8780
138k
{
8781
138k
    if (SCN_UNLIKELY(!result)) {
8782
16.4k
        return unexpected(result.error());
8783
16.4k
    }
8784
121k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
138k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<wchar_t>&&)
Line
Count
Source
8780
16.0k
{
8781
16.0k
    if (SCN_UNLIKELY(!result)) {
8782
15.9k
        return unexpected(result.error());
8783
15.9k
    }
8784
62
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.0k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
94.5k
{
8781
94.5k
    if (SCN_UNLIKELY(!result)) {
8782
93.9k
        return unexpected(result.error());
8783
93.9k
    }
8784
656
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
94.5k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
94.4k
{
8781
94.4k
    if (SCN_UNLIKELY(!result)) {
8782
93.9k
        return unexpected(result.error());
8783
93.9k
    }
8784
522
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
94.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
99.1k
{
8781
99.1k
    if (SCN_UNLIKELY(!result)) {
8782
86.1k
        return unexpected(result.error());
8783
86.1k
    }
8784
12.9k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
99.1k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<bool>&&)
Line
Count
Source
8780
16.0k
{
8781
16.0k
    if (SCN_UNLIKELY(!result)) {
8782
16.0k
        return unexpected(result.error());
8783
16.0k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.0k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<void*>&&)
Line
Count
Source
8780
16.0k
{
8781
16.0k
    if (SCN_UNLIKELY(!result)) {
8782
16.0k
        return unexpected(result.error());
8783
16.0k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.0k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
16.0k
{
8781
16.0k
    if (SCN_UNLIKELY(!result)) {
8782
15.9k
        return unexpected(result.error());
8783
15.9k
    }
8784
68
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
16.0k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
15.6M
{
8781
15.6M
    if (SCN_UNLIKELY(!result)) {
8782
34.3k
        return unexpected(result.error());
8783
34.3k
    }
8784
15.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
15.6M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
8780
15.6M
{
8781
15.6M
    if (SCN_UNLIKELY(!result)) {
8782
34.3k
        return unexpected(result.error());
8783
34.3k
    }
8784
15.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
15.6M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
311k
{
8781
311k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
272k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
311k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
300k
{
8781
300k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
261k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
300k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
400k
{
8781
400k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
361k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
400k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
343k
{
8781
343k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
304k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
343k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
313k
{
8781
313k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
274k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
313k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
302k
{
8781
302k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
263k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
302k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
394k
{
8781
394k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
355k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
394k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
341k
{
8781
341k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
302k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
341k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
401k
{
8781
401k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
362k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
401k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
345k
{
8781
345k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
306k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
345k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
550
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
464
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
78.6k
{
8781
78.6k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
794
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
640
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
550
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
464
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
656
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
522
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
78.6k
{
8781
78.6k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
794
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
640
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
131k
{
8781
131k
    if (SCN_UNLIKELY(!result)) {
8782
9.16k
        return unexpected(result.error());
8783
9.16k
    }
8784
122k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
131k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
15.6M
{
8781
15.6M
    if (SCN_UNLIKELY(!result)) {
8782
18.3k
        return unexpected(result.error());
8783
18.3k
    }
8784
15.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
15.6M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
661k
{
8781
661k
    if (SCN_UNLIKELY(!result)) {
8782
35.0k
        return unexpected(result.error());
8783
35.0k
    }
8784
626k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
661k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
723k
{
8781
723k
    if (SCN_UNLIKELY(!result)) {
8782
35.0k
        return unexpected(result.error());
8783
35.0k
    }
8784
688k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
723k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
661k
{
8781
661k
    if (SCN_UNLIKELY(!result)) {
8782
35.0k
        return unexpected(result.error());
8783
35.0k
    }
8784
626k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
661k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
714k
{
8781
714k
    if (SCN_UNLIKELY(!result)) {
8782
35.0k
        return unexpected(result.error());
8783
35.0k
    }
8784
679k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
714k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
723k
{
8781
723k
    if (SCN_UNLIKELY(!result)) {
8782
35.0k
        return unexpected(result.error());
8783
35.0k
    }
8784
687k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
723k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
82.9k
{
8781
82.9k
    if (SCN_UNLIKELY(!result)) {
8782
70.1k
        return unexpected(result.error());
8783
70.1k
    }
8784
12.8k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
82.9k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
83.1k
{
8781
83.1k
    if (SCN_UNLIKELY(!result)) {
8782
70.1k
        return unexpected(result.error());
8783
70.1k
    }
8784
13.0k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
83.1k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
82.9k
{
8781
82.9k
    if (SCN_UNLIKELY(!result)) {
8782
70.1k
        return unexpected(result.error());
8783
70.1k
    }
8784
12.8k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
82.9k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
83.0k
{
8781
83.0k
    if (SCN_UNLIKELY(!result)) {
8782
70.1k
        return unexpected(result.error());
8783
70.1k
    }
8784
12.8k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
83.0k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
83.1k
{
8781
83.1k
    if (SCN_UNLIKELY(!result)) {
8782
70.1k
        return unexpected(result.error());
8783
70.1k
    }
8784
13.0k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
83.1k
}
8786
8787
/**
8788
 * The return type of `scan`, based on the type of the source, and the
8789
 * types of the scanned arguments.
8790
 */
8791
template <typename Source, typename... Args>
8792
using scan_result_type =
8793
    scan_expected<scan_result<detail::scan_result_value_type<Source>, Args...>>;
8794
8795
/**
8796
 * \defgroup scan Basic scanning API
8797
 *
8798
 * \brief The core public-facing interface of the library
8799
 *
8800
 * The following functions use a format string syntax similar to that of
8801
 * `std::format`. See more at \ref format-string.
8802
 *
8803
 * When these functions take a `source` as input, it must
8804
 * model the `scannable_source` concept. See more at \ref scannable.
8805
 */
8806
8807
/**
8808
 * Scans `Args...` from `source`, according to the
8809
 * specifications given in the format string (`format`).
8810
 * Returns the resulting values in an object of type `scan_result`,
8811
 * alongside a `subrange` pointing to the unused input.
8812
 *
8813
 * Example:
8814
 * \code{.cpp}
8815
 * if (auto result = scn::scan<int>("123", "{}"))
8816
 *     int value = result->value();
8817
 * \endcode
8818
 *
8819
 * \ingroup scan
8820
 */
8821
template <typename... Args,
8822
          typename Source,
8823
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8824
SCN_NODISCARD auto scan(Source&& source,
8825
                        scan_format_string<Source, Args...> format)
8826
    -> scan_result_type<Source, Args...>
8827
4.42M
{
8828
4.42M
    auto args = make_scan_args<scan_context, Args...>();
8829
4.42M
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.42M
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.42M
}
_ZN3scn2v34scanIJcERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJiERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJjERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJdERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJbERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJPvERNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEEOSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNST_ISN_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEERNS2_17basic_string_viewIcS5_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESJ_NS0_6detail22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEJDpT_EEEEEOSF_NS0_24basic_scan_format_stringIcNSK_13type_identityISF_E4typeEJDpNSW_ISQ_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEERNS2_17basic_string_viewIcNS4_IcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEEOSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNSX_ISR_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEERS6_vEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
4.01k
{
8828
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8829
4.01k
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.01k
}
_ZN3scn2v34scanIJaENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
155k
{
8828
155k
    auto args = make_scan_args<scan_context, Args...>();
8829
155k
    auto result = vscan(SCN_FWD(source), format, args);
8830
155k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
155k
}
_ZN3scn2v34scanIJhENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
150k
{
8828
150k
    auto args = make_scan_args<scan_context, Args...>();
8829
150k
    auto result = vscan(SCN_FWD(source), format, args);
8830
150k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
150k
}
_ZN3scn2v34scanIJiENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
196k
{
8828
196k
    auto args = make_scan_args<scan_context, Args...>();
8829
196k
    auto result = vscan(SCN_FWD(source), format, args);
8830
196k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
196k
}
_ZN3scn2v34scanIJjENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
169k
{
8828
169k
    auto args = make_scan_args<scan_context, Args...>();
8829
169k
    auto result = vscan(SCN_FWD(source), format, args);
8830
169k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
169k
}
_ZN3scn2v34scanIJxENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
200k
{
8828
200k
    auto args = make_scan_args<scan_context, Args...>();
8829
200k
    auto result = vscan(SCN_FWD(source), format, args);
8830
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
200k
}
_ZN3scn2v34scanIJyENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
171k
{
8828
171k
    auto args = make_scan_args<scan_context, Args...>();
8829
171k
    auto result = vscan(SCN_FWD(source), format, args);
8830
171k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
171k
}
_ZN3scn2v34scanIJaENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
156k
{
8828
156k
    auto args = make_scan_args<scan_context, Args...>();
8829
156k
    auto result = vscan(SCN_FWD(source), format, args);
8830
156k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
156k
}
_ZN3scn2v34scanIJhENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
151k
{
8828
151k
    auto args = make_scan_args<scan_context, Args...>();
8829
151k
    auto result = vscan(SCN_FWD(source), format, args);
8830
151k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
151k
}
_ZN3scn2v34scanIJiENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
197k
{
8828
197k
    auto args = make_scan_args<scan_context, Args...>();
8829
197k
    auto result = vscan(SCN_FWD(source), format, args);
8830
197k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
197k
}
_ZN3scn2v34scanIJjENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
170k
{
8828
170k
    auto args = make_scan_args<scan_context, Args...>();
8829
170k
    auto result = vscan(SCN_FWD(source), format, args);
8830
170k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
170k
}
_ZN3scn2v34scanIJxENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
200k
{
8828
200k
    auto args = make_scan_args<scan_context, Args...>();
8829
200k
    auto result = vscan(SCN_FWD(source), format, args);
8830
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
200k
}
_ZN3scn2v34scanIJyENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
172k
{
8828
172k
    auto args = make_scan_args<scan_context, Args...>();
8829
172k
    auto result = vscan(SCN_FWD(source), format, args);
8830
172k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
172k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEEOSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS10_ISU_E4typeEEEE
Line
Count
Source
8827
65.0k
{
8828
65.0k
    auto args = make_scan_args<scan_context, Args...>();
8829
65.0k
    auto result = vscan(SCN_FWD(source), format, args);
8830
65.0k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
65.0k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEEOSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNSY_ISS_E4typeEEEE
Line
Count
Source
8827
65.0k
{
8828
65.0k
    auto args = make_scan_args<scan_context, Args...>();
8829
65.0k
    auto result = vscan(SCN_FWD(source), format, args);
8830
65.0k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
65.0k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJDpT_EEEEEOSO_NS0_24basic_scan_format_stringIcNST_13type_identityISO_E4typeEJDpNS15_ISZ_E4typeEEEE
Line
Count
Source
8827
65.7k
{
8828
65.7k
    auto args = make_scan_args<scan_context, Args...>();
8829
65.7k
    auto result = vscan(SCN_FWD(source), format, args);
8830
65.7k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
65.7k
}
_ZN3scn2v34scanIJfENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
330k
{
8828
330k
    auto args = make_scan_args<scan_context, Args...>();
8829
330k
    auto result = vscan(SCN_FWD(source), format, args);
8830
330k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
330k
}
_ZN3scn2v34scanIJdENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
357k
{
8828
357k
    auto args = make_scan_args<scan_context, Args...>();
8829
357k
    auto result = vscan(SCN_FWD(source), format, args);
8830
357k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
357k
}
_ZN3scn2v34scanIJeENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
361k
{
8828
361k
    auto args = make_scan_args<scan_context, Args...>();
8829
361k
    auto result = vscan(SCN_FWD(source), format, args);
8830
361k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
361k
}
_ZN3scn2v34scanIJfENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
330k
{
8828
330k
    auto args = make_scan_args<scan_context, Args...>();
8829
330k
    auto result = vscan(SCN_FWD(source), format, args);
8830
330k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
330k
}
_ZN3scn2v34scanIJdENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
357k
{
8828
357k
    auto args = make_scan_args<scan_context, Args...>();
8829
357k
    auto result = vscan(SCN_FWD(source), format, args);
8830
357k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
357k
}
_ZN3scn2v34scanIJeENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
361k
{
8828
361k
    auto args = make_scan_args<scan_context, Args...>();
8829
361k
    auto result = vscan(SCN_FWD(source), format, args);
8830
361k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
361k
}
8832
8833
/**
8834
 * `scan` with explicitly supplied default values
8835
 *
8836
 * Can be used, for example, for pre-allocating a scanned string:
8837
 *
8838
 * \code{.cpp}
8839
 * std::string str;
8840
 * str.reserve(64);
8841
 *
8842
 * // As long as the read string fits in `str`,
8843
 * // does not allocate
8844
 * auto result = scn::scan<std::string>(source, "{}",
8845
 *                                      {std::move(str)});
8846
 * // Access the read string with result->value()
8847
 * \endcode
8848
 *
8849
 * \ingroup scan
8850
 */
8851
template <typename... Args,
8852
          typename Source,
8853
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8854
SCN_NODISCARD auto scan(Source&& source,
8855
                        scan_format_string<Source, Args...> format,
8856
                        std::tuple<Args...>&& initial_args)
8857
    -> scan_result_type<Source, Args...>
8858
{
8859
    auto args = make_scan_args<scan_context, Args...>(SCN_FWD(initial_args));
8860
    auto result = vscan(SCN_FWD(source), format, args);
8861
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8862
}
8863
8864
/**
8865
 * \defgroup locale Localization
8866
 *
8867
 * \brief Scanning APIs that allow passing in a locale
8868
 */
8869
8870
/**
8871
 * `scan` using an explicit locale.
8872
 *
8873
 * Has no effect on its own, locale-specific scanning still needs to be
8874
 * opted-into on an argument-by-argument basis, with the `L` format string
8875
 * specifier.
8876
 *
8877
 * \code{.cpp}
8878
 * auto result = scn::scan<double>(
8879
 *     std::locale{"fi_FI.UTF-8"}, "3,14, "{:L}");
8880
 * // result->value() == 3.14
8881
 * \endcode
8882
 *
8883
 * \ingroup locale
8884
 */
8885
template <typename... Args,
8886
          typename Locale,
8887
          typename Source,
8888
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
8889
          typename = std::void_t<decltype(Locale::classic())>>
8890
SCN_NODISCARD auto scan(const Locale& loc,
8891
                        Source&& source,
8892
                        scan_format_string<Source, Args...> format)
8893
    -> scan_result_type<Source, Args...>
8894
4.42M
{
8895
4.42M
    auto args = make_scan_args<scan_context, Args...>();
8896
4.42M
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.42M
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.42M
}
_ZN3scn2v34scanIJcENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJiENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJjENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJdENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJbENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJPvENSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEERKT0_OSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSX_ISO_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeERNS2_17basic_string_viewIcS5_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEERKT0_OSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNS10_ISR_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEENS2_6localeERNS2_17basic_string_viewIcNS4_IcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEERKT0_OSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNS11_ISS_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeERS6_vvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
4.01k
{
8895
4.01k
    auto args = make_scan_args<scan_context, Args...>();
8896
4.01k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.01k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.01k
}
_ZN3scn2v34scanIJaENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
155k
{
8895
155k
    auto args = make_scan_args<scan_context, Args...>();
8896
155k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
155k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
155k
}
_ZN3scn2v34scanIJhENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
150k
{
8895
150k
    auto args = make_scan_args<scan_context, Args...>();
8896
150k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
150k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
150k
}
_ZN3scn2v34scanIJiENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
196k
{
8895
196k
    auto args = make_scan_args<scan_context, Args...>();
8896
196k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
196k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
196k
}
_ZN3scn2v34scanIJjENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
169k
{
8895
169k
    auto args = make_scan_args<scan_context, Args...>();
8896
169k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
169k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
169k
}
_ZN3scn2v34scanIJxENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
200k
{
8895
200k
    auto args = make_scan_args<scan_context, Args...>();
8896
200k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
200k
}
_ZN3scn2v34scanIJyENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
171k
{
8895
171k
    auto args = make_scan_args<scan_context, Args...>();
8896
171k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
171k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
171k
}
_ZN3scn2v34scanIJaENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
156k
{
8895
156k
    auto args = make_scan_args<scan_context, Args...>();
8896
156k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
156k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
156k
}
_ZN3scn2v34scanIJhENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
151k
{
8895
151k
    auto args = make_scan_args<scan_context, Args...>();
8896
151k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
151k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
151k
}
_ZN3scn2v34scanIJiENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
197k
{
8895
197k
    auto args = make_scan_args<scan_context, Args...>();
8896
197k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
197k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
197k
}
_ZN3scn2v34scanIJjENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
170k
{
8895
170k
    auto args = make_scan_args<scan_context, Args...>();
8896
170k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
170k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
170k
}
_ZN3scn2v34scanIJxENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
200k
{
8895
200k
    auto args = make_scan_args<scan_context, Args...>();
8896
200k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
200k
}
_ZN3scn2v34scanIJyENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
172k
{
8895
172k
    auto args = make_scan_args<scan_context, Args...>();
8896
172k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
172k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
172k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSF_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESO_NS0_6detail22borrowed_tail_subrangeISK_Xsr6rangesE14borrowed_rangeISK_EEE4typeEE4typeEJDpT_EEEEERKT0_OSK_NS0_24basic_scan_format_stringIcNSP_13type_identityISK_E4typeEJDpNS14_ISV_E4typeEEEE
Line
Count
Source
8894
65.0k
{
8895
65.0k
    auto args = make_scan_args<scan_context, Args...>();
8896
65.0k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
65.0k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
65.0k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSD_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEERKT0_OSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNS12_IST_E4typeEEEE
Line
Count
Source
8894
65.0k
{
8895
65.0k
    auto args = make_scan_args<scan_context, Args...>();
8896
65.0k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
65.0k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
65.0k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSF_PKSG_lLl4096EEESK_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEEST_NS0_6detail22borrowed_tail_subrangeISP_Xsr6rangesE14borrowed_rangeISP_EEE4typeEE4typeEJDpT_EEEEERKT0_OSP_NS0_24basic_scan_format_stringIcNSU_13type_identityISP_E4typeEJDpNS19_IS10_E4typeEEEE
Line
Count
Source
8894
65.7k
{
8895
65.7k
    auto args = make_scan_args<scan_context, Args...>();
8896
65.7k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
65.7k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
65.7k
}
_ZN3scn2v34scanIJfENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
330k
{
8895
330k
    auto args = make_scan_args<scan_context, Args...>();
8896
330k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
330k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
330k
}
_ZN3scn2v34scanIJdENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
357k
{
8895
357k
    auto args = make_scan_args<scan_context, Args...>();
8896
357k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
357k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
357k
}
_ZN3scn2v34scanIJeENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
361k
{
8895
361k
    auto args = make_scan_args<scan_context, Args...>();
8896
361k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
361k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
361k
}
_ZN3scn2v34scanIJfENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
330k
{
8895
330k
    auto args = make_scan_args<scan_context, Args...>();
8896
330k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
330k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
330k
}
_ZN3scn2v34scanIJdENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
357k
{
8895
357k
    auto args = make_scan_args<scan_context, Args...>();
8896
357k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
357k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
357k
}
_ZN3scn2v34scanIJeENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
361k
{
8895
361k
    auto args = make_scan_args<scan_context, Args...>();
8896
361k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
361k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
361k
}
8899
8900
/**
8901
 * `scan` with a locale and default values
8902
 *
8903
 * \ingroup locale
8904
 */
8905
template <typename... Args,
8906
          typename Locale,
8907
          typename Source,
8908
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
8909
          typename = std::void_t<decltype(Locale::classic())>>
8910
SCN_NODISCARD auto scan(const Locale& loc,
8911
                        Source&& source,
8912
                        scan_format_string<Source, Args...> format,
8913
                        std::tuple<Args...>&& initial_args)
8914
    -> scan_result_type<Source, Args...>
8915
{
8916
    auto args = make_scan_args<scan_context, Args...>(SCN_FWD(initial_args));
8917
    auto result = vscan(loc, SCN_FWD(source), format, args);
8918
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8919
}
8920
8921
/**
8922
 * `scan` a single value, with default options.
8923
 *
8924
 * Essentially equivalent to: `scn::scan<T>(source, "{}")`,
8925
 * except it can skip parsing the format string, gaining performance.
8926
 *
8927
 * \ingroup scan
8928
 */
8929
template <typename T,
8930
          typename Source,
8931
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8932
SCN_NODISCARD auto scan_value(Source&& source) -> scan_result_type<Source, T>
8933
871k
{
8934
871k
    T value;
8935
871k
    auto arg = detail::make_arg<scan_context>(value);
8936
871k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
827k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
871k
}
_ZN3scn2v310scan_valueIaNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueIhNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
23.3k
{
8934
23.3k
    T value;
8935
23.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
23.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
21.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
23.3k
}
_ZN3scn2v310scan_valueIiNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
30.3k
{
8934
30.3k
    T value;
8935
30.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
28.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.3k
}
_ZN3scn2v310scan_valueIjNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.0k
{
8934
26.0k
    T value;
8935
26.0k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.0k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.0k
}
_ZN3scn2v310scan_valueIxNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
30.9k
{
8934
30.9k
    T value;
8935
30.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
29.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.9k
}
_ZN3scn2v310scan_valueIyNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.3k
{
8934
26.3k
    T value;
8935
26.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.3k
}
_ZN3scn2v310scan_valueIaNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.2k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueIhNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
23.2k
{
8934
23.2k
    T value;
8935
23.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
23.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
21.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
23.2k
}
_ZN3scn2v310scan_valueIiNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
29.8k
{
8934
29.8k
    T value;
8935
29.8k
    auto arg = detail::make_arg<scan_context>(value);
8936
29.8k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
27.8k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
29.8k
}
_ZN3scn2v310scan_valueIjNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
25.9k
{
8934
25.9k
    T value;
8935
25.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
25.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
25.9k
}
_ZN3scn2v310scan_valueIxNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
30.3k
{
8934
30.3k
    T value;
8935
30.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
28.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.3k
}
_ZN3scn2v310scan_valueIyNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJT_EEEEEOSJ_
Line
Count
Source
8933
30.7k
{
8934
30.7k
    T value;
8935
30.7k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.7k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
30.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.7k
}
_ZN3scn2v310scan_valueINSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJT_EEEEEOSH_
Line
Count
Source
8933
30.7k
{
8934
30.7k
    T value;
8935
30.7k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.7k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
30.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.7k
}
_ZN3scn2v310scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJT_EEEEEOSO_
Line
Count
Source
8933
31.1k
{
8934
31.1k
    T value;
8935
31.1k
    auto arg = detail::make_arg<scan_context>(value);
8936
31.1k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
30.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
31.1k
}
_ZN3scn2v310scan_valueIfNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
72.5k
{
8934
72.5k
    T value;
8935
72.5k
    auto arg = detail::make_arg<scan_context>(value);
8936
72.5k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
69.5k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
72.5k
}
_ZN3scn2v310scan_valueIdNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
80.3k
{
8934
80.3k
    T value;
8935
80.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
80.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
77.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
80.3k
}
_ZN3scn2v310scan_valueIeNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
81.8k
{
8934
81.8k
    T value;
8935
81.8k
    auto arg = detail::make_arg<scan_context>(value);
8936
81.8k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
78.9k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
81.8k
}
_ZN3scn2v310scan_valueIfNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
67.4k
{
8934
67.4k
    T value;
8935
67.4k
    auto arg = detail::make_arg<scan_context>(value);
8936
67.4k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
64.5k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
67.4k
}
_ZN3scn2v310scan_valueIdNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
74.9k
{
8934
74.9k
    T value;
8935
74.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
74.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
72.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
74.9k
}
_ZN3scn2v310scan_valueIeNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
75.9k
{
8934
75.9k
    T value;
8935
75.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
75.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
73.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
75.9k
}
8939
8940
/**
8941
 * `scan` a single value, with default options, and a default value.
8942
 *
8943
 * \ingroup scan
8944
 */
8945
template <typename T,
8946
          typename Source,
8947
          std::enable_if_t<detail::is_file_or_narrow_range<Source>>* = nullptr>
8948
SCN_NODISCARD auto scan_value(Source&& source, T initial_value)
8949
    -> scan_result_type<Source, T>
8950
{
8951
    auto arg = detail::make_arg<scan_context>(initial_value);
8952
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8953
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(initial_value)}};
8954
}
8955
8956
/**
8957
 * Scan from `stdin`.
8958
 *
8959
 * Equivalent to `scn::scan<...>(stdin, ...)`.
8960
 *
8961
 * \code{.cpp}
8962
 * auto result = scn::input<int>("{}");
8963
 * \endcode
8964
 *
8965
 * \ingroup scan
8966
 */
8967
template <typename... Args>
8968
SCN_NODISCARD auto input(scan_format_string<std::FILE*, Args...> format)
8969
    -> scan_result_type<std::FILE*, Args...>
8970
{
8971
    auto args = make_scan_args<scan_context, Args...>();
8972
    auto err = vinput(format, args);
8973
    if (SCN_UNLIKELY(!err)) {
8974
        return unexpected(err);
8975
    }
8976
    return scan_result{stdin, SCN_MOVE(args.args())};
8977
}
8978
8979
/**
8980
 * Write msg to stdout, and call `input<Args...>(format)`
8981
 *
8982
 * \ingroup scan
8983
 */
8984
template <typename... Args>
8985
SCN_NODISCARD auto prompt(const char* msg,
8986
                          scan_format_string<std::FILE*, Args...> format)
8987
    -> scan_result_type<std::FILE*, Args...>
8988
{
8989
    std::printf("%s", msg);
8990
    std::fflush(stdout);
8991
    return input<Args...>(format);
8992
}
8993
8994
namespace detail {
8995
template <typename T>
8996
inline constexpr bool is_scan_int_type =
8997
    std::is_integral_v<T> && !std::is_same_v<T, char> &&
8998
    !std::is_same_v<T, wchar_t> && !std::is_same_v<T, char32_t> &&
8999
    !std::is_same_v<T, bool>;
9000
}
9001
9002
/**
9003
 * Fast integer reading.
9004
 *
9005
 * Quickly reads an integer from a `std::string_view`. Skips preceding
9006
 * whitespace.
9007
 *
9008
 * Reads in the specified base,
9009
 * allowing a base prefix. Set `base` to `0` to detect the base from the
9010
 * input. `base` must either be `0`, or in range `[2, 36]`.
9011
 *
9012
 * \ingroup scan
9013
 */
9014
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9015
SCN_NODISCARD auto scan_int(std::string_view source, int base = 10)
9016
    -> scan_result_type<std::string_view, T>
9017
{
9018
    T value{};
9019
    SCN_TRY(it, detail::scan_int_impl(source, value, base));
9020
    return scan_result{ranges::subrange{it, source.end()}, std::tuple{value}};
9021
}
9022
9023
namespace detail {
9024
template <bool Val, typename T>
9025
inline constexpr bool dependent_bool = Val;
9026
}
9027
9028
/**
9029
 * Very fast integer reading.
9030
 *
9031
 * Quickly reads an integer from a `std::string_view`.
9032
 *
9033
 * Be very careful when using this one!
9034
 * Its speed comes from some very heavy assumptions about the validity of
9035
 * the input:
9036
 *  - `source` must not be empty.
9037
 *  - `source` contains nothing but the integer: no leading or trailing
9038
 *    whitespace, no extra junk. Leading `-` is allowed for signed types,
9039
 *    no `+` is allowed.
9040
 *  - The parsed value does not overflow.
9041
 *  - The input is a valid base-10 integer.
9042
 * Breaking these assumptions will lead to UB.
9043
 *
9044
 * \ingroup scan
9045
 */
9046
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9047
SCN_NODISCARD auto scan_int_exhaustive_valid(std::string_view source) -> T
9048
{
9049
    static_assert(
9050
        detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
9051
        "scan_int_exhaustive_valid requires a little endian environment");
9052
    return detail::scan_int_exhaustive_valid_impl<T>(source);
9053
}
9054
9055
SCN_END_NAMESPACE
9056
}  // namespace scn